黑马程序员技术交流社区

标题: 下面的代码为什么x=7 [打印本页]

作者: 晓聪同学    时间: 2017-2-19 17:08
标题: 下面的代码为什么x=7
int x = 1,y = 1;
if(x++==1 || ++y==1){
           x =7;
}
System.out.println("x="+x+",y="+y);
为什么x=7
int x = 1;
int y=1;
if(x++==2 & ++y==2){
          x =7;
}
System.out.println("x="+x+",y="+y);
这个为什么x不等于7

作者: lion86    时间: 2017-2-19 17:17
第一个,有一边为真就执行,X先做比较再自加,所以等于7

作者: 晓聪同学    时间: 2017-2-19 17:29
lion86 发表于 2017-2-19 17:17
第一个,有一边为真就执行,X先做比较再自加,所以等于7

int y=1;
if(x++==2 & ++y==2){
          x =7;
}
System.out.println("x="+x+",y="+y);  x=2 y=2
这个为什么不是7
作者: 晓聪同学    时间: 2017-2-19 17:30
lion86 发表于 2017-2-19 17:17
第一个,有一边为真就执行,X先做比较再自加,所以等于7

int y=1;
if(x++==2 & ++y==2){
          x =7;
}
System.out.println("x="+x+",y="+y);  x=2 y=2
这个为什么不是7
作者: im浩    时间: 2017-2-19 17:42
第二个 因为++在后先计算再++所以为假 不再执行if内的语句
作者: wqq1317    时间: 2017-2-19 22:29
一,&与&&和|与||的区别
二,x++与++x的区别
这两者都理解了,就明白了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2