A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 晓聪同学 中级黑马   /  2017-2-19 17:08  /  1128 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

5 个回复

倒序浏览
第一个,有一边为真就执行,X先做比较再自加,所以等于7
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
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
回复 使用道具 举报
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:08
报纸
第二个 因为++在后先计算再++所以为假 不再执行if内的语句
回复 使用道具 举报
一,&与&&和|与||的区别
二,x++与++x的区别
这两者都理解了,就明白了
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马