我在Arduino IDE中遇到for循环和数组的问题。
如何让test2工作?
fragment
提前致谢
答案 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
}
}