黑马程序员技术交流社区
标题: 自学中,关于自增的在网上找的题目自己在做,搞不明白..... [打印本页]
作者: 野出岔子 时间: 2015-11-1 01:07
标题: 自学中,关于自增的在网上找的题目自己在做,搞不明白.....
本帖最后由 野出岔子 于 2015-11-1 01:08 编辑
下面程序执行的结果是?( D)
int x =1,y=1;
if(x++==2 & ++y==2){ x=7;}
System.out.println("x="+x+" , y="+y);
A. x=1 y=2
B. x=7 y=1
C. x=7 y=2
D. x=2 y=2
问:
[size=14.6666669845581px]我打印了结果,为什么会是(x++==2)是false。而( ++y==2)是true?
作者: yanyubang 时间: 2015-11-1 09:21
++i是先计算,再操作
i++是先操作,再计算
(x++==2)是先用先做比较运算(1==2)输出false,然后x自增为2,
而(++y==2)是y先自增为2,然后做比较运算(2==2),输出为true.
作者: 再续啸傲 时间: 2015-11-1 09:53
get dao le......
作者: 米老鼠 时间: 2015-11-1 10:11
这个问题如果听了毕老师的视频 应该不难...他比喻得很形像,x++就是先出去玩儿再吃饭 也就是说先参与运算,再自增
++x是先吃饭再出去玩儿,也就是先自增,再参与运算
x++==2里面,x先做运算,也就是先和2比较大小,这个时侯x=1,x==2自然是false 比较之后x还要自增 所以自增后的x=2了...后面那个也一样 希望能够帮到你
作者: xiexie758 时间: 2015-11-1 10:17
理解为:结果都会自增,比较的是赋值运算是在自增后还是自增前
作者: 刘印 时间: 2015-11-1 10:23
米老鼠 发表于 2015-11-1 10:11
这个问题如果听了毕老师的视频 应该不难...他比喻得很形像,x 就是先出去玩儿再吃饭 也就是说先参与运算, ...
这个理解不错啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |