黑马程序员技术交流社区
标题:
关于++运算符
[打印本页]
作者:
a6658637
时间:
2015-9-7 00:40
标题:
关于++运算符
class Test {
public static void main(String[] args) {
int sum = 0;
int y = 0;
for (int i = 0;i < 10 ;i++ ) {
sum=sum++;
y=sum++;
}
System.out.println(sum);//10
System.out.println(y);//9
}
}
为什么答案输出的是10和9?求大神解释
作者:
洋葱头头
时间:
2015-9-7 09:42
sum=sum++; 这个永远是在一个值
因为先把sum这个值存保存到一个域 等表达式运行完 在把sum赋给sum 结果还是0
y=sum++;
那这个你能理解了把 sum++把运行之前的值赋给了y 所以y是9 sum是10
作者:
l631356126
时间:
2015-9-7 11:11
最后一步是sum自+1 打印输出, y直接输出sum 所有最后结果是sum=10,y=9;
作者:
79481535
时间:
2015-9-7 11:52
sum++的意思是把sum的值加1后重新付给sum。其中如果是y=sum++,那么这个公式的运算顺序是:先把sum的值付给y,然后sum再自己+1后付给sum。所以y要比sum少1.
作者:
mah707
时间:
2015-9-7 12:09
你想要的结果应该都是9
但是 循环最后 y=sum++;这一句sum=9赋值给力y,再自加保存就是sum=10了
作者:
Mr.W
时间:
2015-9-7 12:24
楼上正解
作者:
ccc129074288
时间:
2015-9-7 12:36
把 a++ 和 ++a 放一起理解比较好
作者:
张寰宇
时间:
2015-9-7 12:37
谢谢分享,学习了。
作者:
sansu
时间:
2015-9-7 18:54
你在for 之前就初始
化int y= o int sum=0
;
第一次for循环 sum=sum++ 等于 1 逻辑: sum++等价于(0++)在赋值给sum 输出 为 1
y=sum++ 此时已经y被初始化等于0了, 直接输出 0
作者:
15210373205
时间:
2015-9-7 18:58
楼上正解
作者:
a6658637
时间:
2015-9-7 22:50
洋葱头头 发表于 2015-9-7 09:42
sum=sum++; 这个永远是在一个值
因为先把sum这个值存保存到一个域 等表达式运行完 在把sum赋给sum 结 ...
嗯嗯,今天老师解答了,sum=sum++其实就是一句废话,不用看的,顿时恍然大悟
作者:
0825王欢
时间:
2015-9-8 00:17
顶一下、、、、、、
作者:
迷茫不堪的年纪
时间:
2015-9-8 17:29
直接忽略 y=sum++; +1之前的一个运算
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2