我面临一个奇怪的问题,我无法真正理解我做错了什么......一定有什么东西!
我会很快解释一下...... 我正在为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();
}
}
我试图调试我的问题......
在输入“找到”的if块后,标志设置为 true ,确实“标志值2:”是 true 就像“旗值3:”,但是 在下一次迭代中,“标志值1:”实际上是 false ......
怎么了?请赐教!感谢
答案 0 :(得分:1)
由于while
循环的条件是!flag
,逻辑上不可能有flag
为真的迭代。因此,您认为应该发生的行为可能不发生。