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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

    int a = 1;
     a = a++;
System.out.println(a);
为什么结果是1,让我不理解了一些时间,能帮我看看我理解的对吗?
这条题我能理解成,
在内存内的运算是先a=a的赋值也就是1赋值给了a,而后a++,也是a=a+1;就是1+1=2;2赋值给了a,
现在内存的a是2的值,但是java是由右边往左边读取的,a=a才会是1赋值给了a.
得出来的结果才会是1。
我是刚刚人门的菜鸟,有人明白这个的吗?
我这样的理解是对的吗?
还有就是2的值我要怎么能把它打印出来。。。

10 个回复

倒序浏览
理解的对,而且在内存中也确实出现了2.你可以在外面套一个循环,就能看出来了
回复 使用道具 举报
耀阳圣尊 发表于 2015-6-15 18:05
理解的对,而且在内存中也确实出现了2.你可以在外面套一个循环,就能看出来了
...

能给我打个代码出来吗?我不是很清楚要用那个代码。。
回复 使用道具 举报
"现在内存的a是2的值,但是java是由右边往左边读取的,a=a才会是1赋值给了a."

这句话是什么意思   内存中确实是a=2   然后呢  搞得不太懂
回复 使用道具 举报
a确实是2了,但是应该是++的位置吧,放到后面是先赋值然后再加1的
回复 使用道具 举报
psaa 来自手机 中级黑马 2015-6-15 21:02:39
地板
[quote]1千克=1024克 发表于 2015-6-15 19:41


你可以敲下代码,结果是1的
回复 使用道具 举报
psaa 来自手机 中级黑马 2015-6-15 21:03:49
7#
lwen 发表于 2015-6-15 19:58
a确实是2了,但是应该是  的位置吧,放到后面是先赋值然后再加1的

你试试敲下代码,
回复 使用道具 举报
耀阳圣尊 发表于 2015-6-15 18:05
理解的对,而且在内存中也确实出现了2.你可以在外面套一个循环,就能看出来了
...

请问怎么嵌套?不解,求解:victory:
回复 使用道具 举报
赞一个   
回复 使用道具 举报
参观一下~
回复 使用道具 举报
因为是后++,所以在运行a++的时候已经把1赋值给了a,所以输出为1
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马