if问题,大家共同提高一下

来源:百度知道 编辑:UC知道 时间:2024/06/02 18:26:02
if((a==1)+(b==4)+(c==3)==1 &&(b==1)+(a==4)+(c==2)+(d==3)==1 &&
(c==1)+(d==4)+(b==2)+(a==3)==1 &&(b==4)+(a==3)==1)
这个(a==1)+(b==4)+(c==3)==1这些条件理解不了.
这段if的上面是三个for循环对a,b,c,d进行覆值,大家不用考虑。
a,b,c,d的值是会变的。就是这些条件的比较理解不了。

(a==1)+(b==4)+(c==3)==1

每个小括号内的条件如果成立,那么这个小括号的值就是1,所以整个表达式的意思就是判断三个小括号中是不是有且只有一个成立。如果有超过一个小括号成立,那么三个小括号的和将大于1,如果都不成立,那么三个小括号的和将是0

这个if是纸老虎
先算括号什么都解决了
a== b== 之类的是判断条件
为真,值为1,为假值为0
然后根据&&的性质再运算,最后得出结果
&&的性质:
①如果&&前面的值为0的时候就不对&&后面的表达式进行运算
②如果&&前面的值为1的时候就需要对&&后面的表达式进行运算
而||的性质和&&相反

比如 a=1;
那么 a==1 是真的 将返回 真值1,否者返回0
依次类推

三个条件中有且只有一个为真就是咯