黑马程序员技术交流社区
标题:
这个题的结果没看懂,哪位可以帮解释一下?
[打印本页]
作者:
ok-Prince
时间:
2014-4-2 12:55
标题:
这个题的结果没看懂,哪位可以帮解释一下?
本帖最后由 ok-Prince 于 2014-4-2 13:10 编辑
class Cz1
{
public static void main(String[] args)
{
int x=0,y=1;
if(++x==y--&x++==1||--y==0)
System.out.println("x="+x+",y="+y);
else
System.out.println("y="+y+",x="+x);
}
}
复制代码
其结果是x=2,y=0,x=2我看懂了,x自增了2次,可是y为什么是0呢,y不是也自减了两次么?
作者:
osully
时间:
2014-4-2 13:02
|| 左边true 右边不运行
&& 左边false 右边不运行
作者:
董振冬
时间:
2014-4-2 13:06
本帖最后由 董振冬 于 2014-4-2 13:13 编辑
++x 等于 x = x+1;++x = y -- 等于 ++x = y ; y--,此时y还是等于1的,然后执行y-- ,y=0,条件成立 || 或者符号 一个条件成立即可执行结果,后的--y不执行了。。over。
作者:
ok-Prince
时间:
2014-4-2 13:09
osully 发表于 2014-4-2 13:02
|| 左边true 右边不运行
&& 左边false 右边不运行
:dizzy:So easy...谢谢。。
作者:
相见欢
时间:
2014-4-2 13:12
我也看不懂
作者:
_Water
时间:
2014-4-2 13:14
首先看if 条件语句中的第一部分++x==y--&x++==1, &代表是位与,第一个条件不符合的情况下中断,如false&true. 则不会判断true ,返回false ;
++x==y-- ,这一步的结果是ture,x++==1,这一步的结果也是ture,所以整个的if条件语句的第一部分++x==y--&x++==1返回结果是true。实际上||后面的语句--y==0是不会执行的,所以对于y而言只执行了一次y=y-1;的操作。即y最后的结果是0
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2