java,关系表达式,

问题描述:

java,关系表达式,
x的初值是1.那么经过
((y=1)==0))&&((x=6)==6)),逻辑与运算后,x的值仍然是1.
经过
((y=1)==1))&&((x=6)==6)),逻辑与运算后,x的值将变为6.
1个回答 分类:综合 2014-10-27

问题解答:

我来补答
因为&&是短路运算符“与”
((y=1)==0))&&((x=6)==6)), 当前面的表达式:((y=1)==0)) 为false的时候 ,后面的表达式((x=6)==6)), 不会再执行了(因为“与”运算只要一个为false,就整个都false)
而:((y=1)==1))&&((x=6)==6)), 前面的表达式是true,那么还要判断后面的表达式的boolean值才能得到整个表达式的值,所以会执行((x=6)==6)),
希望对你有帮助

如果不清楚短路运算符,那你就把&& 换成& 去执行看看;(&是非短路”与“)
再问: ((y=1)==0))类似这条表达式中的括号,为什么是不配对的呢?谢谢。
再答: 你有一个是中文的括号 英文括号((y=1)==0) 在写代码时 一定要用英文的 不然会报错 &&是短路和 如果第一个表达式为false 那么就不会运算后面的表达式 直接就判断结果为false &是和 就是不管你第一表达式是false还是true 后面的表达式都要运算 然后再判断结果
 
 
展开全文阅读
剩余:2000