for循环范围问题

End*_*ins 0 c++ arduino

我使用的代码如下:

const int NUMBER_OF_FIELDS = 3;
int fieldIndex = 0;
int values[NUMBER_OF_FIELDS];

void setup()
  {
  Serial.begin(9600);
  }

void loop()
  {
   if(Serial.available())
    {
     char ch = Serial.read();
     if(ch>='0' && ch <= '9')
       {
       values[fieldIndex] = (values[fieldIndex]*10 +(ch-'0'));
       }
      else if (ch == ',')
       {
        if(fieldIndex < NUMBER_OF_FIELDS -1)
        fieldIndex++;
       }
      else 
       {
       Serial.print(fieldIndex+1);
       Serial.println("fields recieved:");
       for (int i = 0; i<=fieldIndex; i++);
         {
         //Serial.println(values[i]);
         //values[i]= 0;
         }
        fieldIndex = 0; 
       } 
    } 
  }
Run Code Online (Sandbox Code Playgroud)

但我收到的错误是:

对于'范围','i'的名称查找已更改为新的ISO'

我不认为我在for循环中做错了什么,为什么我得到这个错误?

Ric*_*ers 6

在for之后你有一个分号,因此只有for循环范围的int i在for循环之外是无效的.

您可能打算执行以下操作.

  for (int i = 0; i<=fieldIndex; i++)     // no semicolon
  {
     Serial.println(values[i]);
     values[i]= 0;
  }
Run Code Online (Sandbox Code Playgroud)