Arduino - For Loop with Array 不工作

Arduino - For Loop with Array not working

我对 Arduino 中的 for 循环和数组有疑问 IDE。

如何让 test1 工作?

void test1(){
    for(int i=1; i<5; i++) {
    individualPixels[i]==1;
  }
}
void test2(){
    individualPixels[1]=1;
    individualPixels[2]=1;
    individualPixels[3]=1;
    individualPixels[4]=1;
  }
}
void test3(){
    for(int i=1; i<5; i++) {
    Serial.println(individualPixels[i]); //prints out 0 4 times
  }
}

C/C++ 使用零索引数组,因此 test1 和 test3 中的 for 循环应如下所示:

for(int i=0; i<4; i++) {
    individualPixels[i]==1;
}

Test2 有一个不匹配的括号,数组索引应从零开始:

void test2(){
    individualPixels[0]=1;
    individualPixels[1]=1;
    individualPixels[2]=1;
    individualPixels[3]=1;
  //} this shouldn't be here
}

for 循环以 i = 1 开始,它应该为 0,因为可以使用从 0 到 size-1 的索引访问数组中的元素。可以按如下方式访问具有 4 个元素的数组:

array[0] --- first element
array[1] --- second element
array[2] --- third element
array[3] --- fourth element

除此之外,第一个 for 循环(不起作用)使用了 == 运算符,它检查两个变量是否相等,然后 returns 结果是一个布尔值。相反,您应该使用单个 = 来设置值。

第二个测试有一个额外的 } ,应该删除

我建议您开始实际学习编程,例如通过阅读(电子)书,因为您会自学坏习惯(以错误的方式访问数组),这可能有效,但可能效率不高。

你实际上并没有在 test1 中分配任何东西,你正在测试 对于相等(individualPixels[i]==1 应该是 individualPixels[i] = 1,注意单个等号)。

此外,正如其他评论者提到的,C/C++ 使用基于零的索引。

非常感谢大家。 我有一个包含 60 个索引的大数组,我想用 for 循环将其中一些设置为 1。 “==”是主要问题。它现在像我希望的那样工作:

void test1(){
    for(int i=1; i<5; i++) {
    individualPixels[i]=1;
  }
}
void test2(){
    individualPixels[1]=1;
    individualPixels[2]=1;
    individualPixels[3]=1;
    individualPixels[4]=1;
}
void test3(){
    for(int i=1; i<5; i++) {
    Serial.println(individualPixels[i]); //prints out 0 4 times
  }
}