15:1: error: expected unqualified-id before 'for'

15:1: error: expected unqualified-id before 'for'

此错误出现在以下代码中:

int array [50];
int i = 0;

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

void loop() 
{
  Serial.println ("Position " + array[i]);
  delay (2000);

}

for (i <= 50) 
{
  int n = random (251); // Random number from 0 to 250
  array[i] = n;
  i++;
}

// Bubble sort function
void sort (int a[], int size) 
{
    for(int i=0; i<(size-1); i++) 
    {
        for(int j=0; j<(size-(i+1)); j++) 
        {
                if(a[j] > a[j+1]) 
                {
                    int k = a[j];
                    a[j] = a[j+1];
                    a[j+1] = k;
                }
        }
    }
}

当我像这样将 for 循环放入函数 void 循环中时 :

void loop() 
{
  Serial.println ("Position " + array[i]);
  delay (2000);

  for (i <= 50) 
  {
    int n = random (251); // Random number from 0 to 250
    array[i] = n;
    i++;
  }
}

它给了我:

exit status 1
expected ';' before ')' token

我只是想在假期里继续工作,但这几个月我似乎变得更笨了..

感谢您的帮助

无论使用何种语言(C、Java、C++、PHP、...),for 循环通常都是这种形式:

for (init_part; condition; post_instructions) {
  ...
}

如果您没有任何要初始化的东西或 post 指令,可以省略它们:

void loop() 
{
  Serial.println ("Position " + array[i]);
  delay (2000);
  for ( ; i <= 50; ) 
  {
    int n = random (251); // Random number from 0 to 250
    array[i] = n;
    i++;
  }
}

'i++'可以转到post_instructions,eg:

void loop() 
{
  Serial.println ("Position " + array[i]);
  delay (2000);
  for ( ; i <= 50; ++i) 
  {
    int n = random (251); // Random number from 0 to 250
    array[i] = n;
  }
}

[edit] 顺便说一下,您的作用域中没有 'i' 变量。您可能必须先声明它...

根据另一个 for 循环,您有:

for (int i=0; i <= 50; i++;) 
{
  int n = random (251); // Random number from 0 to 250
  array[i] = n;     
}