Lookme66 发表于 2024-11-12 13:46

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);
            }
      }

Masterfelix666 发表于 2024-11-12 13:58

if(),要程序运行的条件。
相等判断 (==):

用于检查两个值是否相同。如果相同,可能表示程序应继续执行某项操作(例如等待、处理等)。
常用于当我们希望在某些条件满足时保持程序的执行。
不等判断 (!=):

用于检查两个值是否不同。如果不同,可能表示程序应停止执行当前操作,跳出循环等。
常用于当我们希望在条件不满足时立即终止操作。
使用场景
使用 keyNum == mKeyNum:

这种条件通常在需要反复确认某个状态(例如用户输入、系统状态等)时使用,直到状态发生变化才进行跳出或其他操作。
使用 keyNum != mKeyNum:

这种条件适合用于监测状态变化,一旦发现不符合预期的状态就中断执行,通常用于实时监控、用户交互等场景。

冰茶荼 发表于 2024-11-12 14:06

那不还得看你的 keyNum,肯定是凑巧了 第一个能跳出循环的

aGuess 发表于 2024-11-12 14:34

首先要确定,第一次退出for循环,是不是因为正常执行了15次而退出的。

lijun132 发表于 2024-11-12 15:07

Masterfelix666 发表于 2024-11-12 13:58
if(),要程序运行的条件。
相等判断 (==):



头一次玩这个,应该怎么玩

xinggeshiranZzz 发表于 2024-11-12 15:08

看看readKeyNum()返回值 打印出来看看

Danny52pojie 发表于 2024-11-12 15:24

调试器里看一下readkeynum()返回值
这两段代码逻辑上是完全等价的
应该是两次运行时readkeynum()返回值不一样

lolo5201010 发表于 2024-11-12 15:25

这两个都没问题,看你if()里面的条件,keyNum和mKeyNum 的值你每次都在if前打印出来就可以理解了

Lookme66 发表于 2024-11-14 21:41

lolo5201010 发表于 2024-11-12 15:25
这两个都没问题,看你if()里面的条件,keyNum和mKeyNum 的值你每次都在if前打印出来就可以理解了

两个值一个是1 ,一个是0;是满足不等于条件的。就是很奇怪

yes2 发表于 2024-11-15 08:53

你 != 中间有空格根本编译不过
页: [1] 2
查看完整版本: C++ 中,不等于和区别?