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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 下一页5 中级黑马   /  2015-5-6 00:30  /  1522 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int x=9;
x=x++;
int y=5;
y=++y;
System.out.println(x+y);//求值啊

13 个回复

正序浏览
++x是先运算后赋值,x++是先赋值后运算
回复 使用道具 举报
一个先加再运行,一个后加再运行
回复 使用道具 举报
围观!!!!!!!!
回复 使用道具 举报
x只是执行了x+1这一步 没有赋给任何人
回复 使用道具 举报
1017161726 发表于 2015-5-6 08:32
说的很对,再补充一下:,x=x++,x在前,+号在后,所以是后自增,x++这个表达式的值是9,x的值却是10.
然 ...

说的很详细。。
回复 使用道具 举报
哎,居然算得16,我的路还长啊
回复 使用道具 举报
ddddk 发表于 2015-5-6 00:44
x=x++的意思是先把x的值赋x再进行++运算,所有x=9
y=++y的意思是先运算++y,再进行赋值,所以y=6
x+y的值自 ...

说的很对,再补充一下:,x=x++,x在前,+号在后,所以是后自增,x++这个表达式的值是9,x的值却是10.
然后表达式的值赋给已经是10的x,x就又变成9了。
而y=++y就是表达式的值是6,y的值也是6,都自增了。
回复 使用道具 举报
所以说x+y就是9+6=15.明白了么,
回复 使用道具 举报
而y=++y是右边先自增后在赋值给左边,也就是右边=6,赋值给左边后,左边也=6.这里需要明白这个=他不是数学上的=号,而是计算机当中的赋值运算符号,这个一定不能混淆了。
回复 使用道具 举报
X=X++运算是先把右边x的值赋给左边的x后,然后右边在自增一个,也就是左边x为9,右边x为10.
回复 使用道具 举报
本帖最后由 hufu4635 于 2015-5-6 07:52 编辑

15,二楼说的很对,不过我也想问一下,int x=9;     x=x++;   x先赋值再进行自增,当自增之后x的值就变成10了吧
回复 使用道具 举报
相加结果是15,因为第二个x 结果还是 9 ,第二个y,因为先自增了,结果就是6~
回复 使用道具 举报
x=x++的意思是先把x的值赋x再进行++运算,所有x=9
y=++y的意思是先运算++y,再进行赋值,所以y=6
x+y的值自然出来了
不知道我有没有记错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马