黑马程序员技术交流社区
标题: 大家看一下下面程序,结果为什么是y=1 ? [打印本页]
作者: 细听风语为梧桐 时间: 2016-8-25 19:54
标题: 大家看一下下面程序,结果为什么是y=1 ?
int x = 1,y = 1;
if(x++==2 && ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
结果为什么是 x=2 , y= 1 ?
作者: 细听风语为梧桐 时间: 2016-8-25 19:55
我知道了。。。因为&& 和 || 都是短路 语句。。。

作者: 1985206835long 时间: 2016-8-25 20:39
学习小菜鸟
作者: 974839876 时间: 2016-8-25 22:56
x++是先比较再自增 先比较x==2 发现不等 然后自增 x就等于2 短路语句 遇fase则fase 后半句就不看了 所以y=1
作者: 细听风语为梧桐 时间: 2016-8-27 21:35
谢谢
作者: 梦想的小草 时间: 2016-8-27 22:12
因为&&具有短路的作用,x++ == 2已经为true,所以&&短路,后面的++y没有被执行到,因此y不变
作者: DaoDao2 时间: 2016-8-27 22:51
因为&&具有短路的作用,x++ == 2已经为false,所以&&短路,后面的++y没有被执行到,因此y不变
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |