为什么这个 Arduino while 循环永远不会结束?

时间:2021-01-11 01:52:46

标签: while-loop arduino

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

这是我对代码的理解:

  • int 定义为 0。

  • while 循环开始是因为条件为真。

  • 选择了一个随机变量。

  • 如果 int 为 1 或 -1,则 while 循环结束,值为 打印出来。

  • 如果 int 为 0,while 循环将重新启动。

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

1 个答案:

答案 0 :(得分:3)

问题是您再次在 while 循环中声明 library(dplyr) library(tidyr) df <- type.convert(df, as.is = TRUE) df %>% pivot_longer(cols = -Age) %>% group_by(name, value) %>% summarise(min_age = min(Age), max_age = max(Age), median_age = median(Age), mean_age = mean(Age)) # name value min_age max_age median_age mean_age # <chr> <chr> <int> <int> <int> <dbl> #1 Gender F 13 24 14 17 #2 Gender M 10 26 24 19.6 #3 Location Rural 24 26 25 24.8 #4 Location Suburb 10 14 13 12.8 #5 Young N 24 26 25 24.8 #6 Young Y 10 14 13 12.8 。这是循环局部范围内的一个新的不同变量,而不是在代码开头声明的全局变量。此外,它会在每个循环中再次声明。

random_number

请注意,循环内的 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,而不是声明一个新的同名局部变量。