在一个if语句里,我写条件是,abc.三个相等都等于零(格式就是上面题目的格式),然后语法没错误,运算出错。后来我把这个改成了a==0&&b==0&&c==0,然后运行就可以正确计算了。所以机器不能识别多个连等吗?
a==b==c==0是一个关系表达式,由于运算符"=="具有左结合性,故其运算顺序是:
(((a==b) ==c )==0)
若a=5,b=5,c=5,则a==b的值为1,而1==c的结果为0,0==0的值为1(真),所以a==b==c==0就成立了,这就错了,所以单独写开才是准确表达
这里面有2个知识点:
有了以上2点知识,这个问题就迎刃而解了。
a==b==c==0 --> ((a==b)==c)==0
( 1 ==c)==0
( 0 )==0
1
所以判断多个变量是否等于同一个值应该分来各自判断。