这可能是最糟糕的方法,但我希望 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() {
}
答案 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
,而不是声明一个新的同名局部变量。