Arduino - For Array with Array不工作

时间:2016-10-27 18:17:51

标签: arduino arduino-ide

我在Arduino IDE中遇到for循环和数组的问题。

  • test1 工作
  • test2可以正常工作
  • test3可以正常工作

如何让test2工作?

fragment

提前致谢

4 个答案:

答案 0 :(得分:1)

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
}

答案 1 :(得分:1)

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循环(不起作用)使用了==运算符,它检查两个变量是否相等,然后返回一个布尔值作为结果。相反,你应该使用单个=来设置值。

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

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

答案 2 :(得分:0)

您实际上并未在test1中分配任何内容,而是进行了重新测试 为了平等(individualPixels[i]==1应为individualPixels[i] = 1,请注意单一的等号)。

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

答案 3 :(得分:0)

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

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
  }
}