int x=0,y=1; if(++x == y-- & x++==1||--y==0) System.out.println("x="+x+",y="
答案:1 悬赏:0
解决时间 2021-03-15 14:03
- 提问者网友:wodetian
- 2021-03-14 16:06
为什么得出的x=2,y=0
最佳答案
- 二级知识专家网友:风格单纯
- 2021-03-14 16:16
if(++x == y-- & x++==1||--y==0)
这句话中
根据运算优先级,先算&
++x==y--相当于
x=x+1;//x成1
x==y;结果是true
y=y-1;//y成0
然后x++==1
则是
x==1; //结果是true
x=x+1;//x成2
所以++x == y-- & x++==1总体结果是true
因为短路原则,后面||就不计算了
所以x最终是2,y是0
这句话中
根据运算优先级,先算&
++x==y--相当于
x=x+1;//x成1
x==y;结果是true
y=y-1;//y成0
然后x++==1
则是
x==1; //结果是true
x=x+1;//x成2
所以++x == y-- & x++==1总体结果是true
因为短路原则,后面||就不计算了
所以x最终是2,y是0
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯