C++ 中,不等于和区别?
这代码可以正常跳出for循环:for(int i = 0; i <15; i++){
mKeyNum = readKeyNum();
if(keyNum==mKeyNum){
sleep(2);
}else{
break;
}
}
这代码可以不能跳出for循环,为啥呢?
for(int i = 0; i <15; i++){
mKeyNum = readKeyNum();
if(keyNum!=mKeyNum){
break;
}else{
sleep(2);
}
} if(),要程序运行的条件。
相等判断 (==):
用于检查两个值是否相同。如果相同,可能表示程序应继续执行某项操作(例如等待、处理等)。
常用于当我们希望在某些条件满足时保持程序的执行。
不等判断 (!=):
用于检查两个值是否不同。如果不同,可能表示程序应停止执行当前操作,跳出循环等。
常用于当我们希望在条件不满足时立即终止操作。
使用场景
使用 keyNum == mKeyNum:
这种条件通常在需要反复确认某个状态(例如用户输入、系统状态等)时使用,直到状态发生变化才进行跳出或其他操作。
使用 keyNum != mKeyNum:
这种条件适合用于监测状态变化,一旦发现不符合预期的状态就中断执行,通常用于实时监控、用户交互等场景。 那不还得看你的 keyNum,肯定是凑巧了 第一个能跳出循环的 首先要确定,第一次退出for循环,是不是因为正常执行了15次而退出的。 Masterfelix666 发表于 2024-11-12 13:58
if(),要程序运行的条件。
相等判断 (==):
头一次玩这个,应该怎么玩 看看readKeyNum()返回值 打印出来看看 调试器里看一下readkeynum()返回值
这两段代码逻辑上是完全等价的
应该是两次运行时readkeynum()返回值不一样 这两个都没问题,看你if()里面的条件,keyNum和mKeyNum 的值你每次都在if前打印出来就可以理解了 lolo5201010 发表于 2024-11-12 15:25
这两个都没问题,看你if()里面的条件,keyNum和mKeyNum 的值你每次都在if前打印出来就可以理解了
两个值一个是1 ,一个是0;是满足不等于条件的。就是很奇怪 你 != 中间有空格根本编译不过
页:
[1]
2