首页 > 解决方案 > 为什么这个 Arduino while 循环永远不会结束?

问题描述

这可能是最糟糕的方法,但我希望 Arduino 在 1 和 -1 之间进行选择。此代码不起作用,有什么问题。

这是我对代码的理解:

标签: while-looparduino

解决方案


问题是您random_number再次在 while 循环内声明。这是循环局部范围内的一个新的不同变量,而不是在代码开头全局声明的变量。此外,它会在每个循环中再次声明。

 int random_number = 0;

 void setup() {
   Serial.begin(9600);
   while (random_number == 0){
       random_number = random(-1,2); // not declared again
       Serial.println(random_number);
       delay(1000);
   }
   Serial.print("value ");
   Serial.println(random_number);
 }

 void loop() {
 }

请注意,int random_number替换random_number为循环内部。现在正在使用全局声明的变量random_number,而不是声明一个具有相同名称的新局部变量。


推荐阅读