为什么这俩式子算出来a,b的结果不同。

img


如果按照优先性不是应该都是 0吗,但结果a是-2,b是0呢,哪里有问题呢,搞不明白

首先明白逻辑与&&是怎么工作的,&&只要第一个表达式为假,后面的表达式就会被忽略不再参与判断了。明白了么?望采纳,谢谢!

因为(a==0)&&(a=-3<-7)这行代码在执行了(a==0)
后就可以确定了,所以后面的(a=-3<-7)其实并没有被执行,所以a还是初始值-2

第二个条件(a==0)&&(a=-3<--7)
a==0为假,后面&&不执行 就算执行了也是为假
整个表达式都为假,表达式结果也没有赋值给a a为初始值-2
如果想要a=0把那个表达式结果赋给a