循环时未保留变量值
Variable value not kept in while loop
我面临一个奇怪的问题,我真的不明白我做错了什么。。。一定有什么!
我很快就会解释。。。我正在为Arduino平台开发(据我所知,它主要基于C++),在我实际代码的一部分中,我有一个while循环。。。
那么问题出在哪里
如果我在while循环中设置了一个变量(在我的情况下是一个标志),它每次都会被重新设置,那么这个代码就在一个函数中。。。(可能有用)
这是:
void waitResponse(char* text) {
static bool flag = false;
count = 0;
digitalWrite(GREEN_PIN, HIGH); //Turn OFF Green LED
while (!espSerial.available()) { //Wait until we get some data in...
Serial.println("No data");
notBlockingBlink();
}
while (!flag) { //We got sth
Serial.print("Flag value 1: ");
Serial.println(flag);
while (espSerial.available()) {
Serial.println("In");
if (search(text)) {
flag = true;
Serial.println("Found");
Serial.print("Flag value 2: ");
Serial.println(flag);
break;
} else {
notBlockingBlink();
}
}
Serial.print("Flag value 3: ");
Serial.println(flag);
notBlockingBlink();
}
}
我试着调试我的问题。。。
在进入存在"Found"的if块后,标志被设置为true,实际上"标志值2:"是true就像"标记值3:一样,但是在下一次迭代中,"标志值1:"实际上是false。。。
怎么了?请开导我!感谢
由于while
循环的条件是!flag
,因此在逻辑上不可能有flag
为真的迭代。因此,您认为应该发生的行为可能不会。
相关文章:
- 使用变量值作为 PlaySound 中的路径
- 通过指针偏移量访问结构变量值
- 变量值在 C++ 中的 glutIdleFunc() 中未递增
- 更新 #ifdef 中的现有变量值?
- 尝试更改 main 函数内的全局变量值时出现编译错误 C++.
- 通过 Rcpp 和 bit64 R 包将最大的int64_t变量值从 C++ 传递到 R
- 如何使用 IRBuilder 更新 LLVM IR 中的全局变量值?
- 更改已在运行的程序的变量值
- 在 Xcode 中使用后对外部变量值进行初始化
- C++整数变量值
- 变量值,在三元运算符之后
- 如何获得对不同类的引用,以便从所述类内部获得变量值
- Java应用程序的JNI-c++变量值
- 如何固定从传感器获得的变量值
- 离开方法时重置变量值
- 打印具有通用特定变量值的类对象
- 在宏函数C++中设置宏变量值
- 为什么每次迭代都会获得相同的变量值? C++
- 循环时未保留变量值
- 为什么我的析构函数没有破坏我的对象,它仍然保留其成员变量值