Arduino - For Loop with Array 不工作
Arduino - For Loop with Array not working
我对 Arduino 中的 for 循环和数组有疑问 IDE。
- test1 不 工作
- test2 确实有效
- test3 确实有效
如何让 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
}
}
我对 Arduino 中的 for 循环和数组有疑问 IDE。
- test1 不 工作
- test2 确实有效
- test3 确实有效
如何让 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
}
}