a++ 的值的疑问?
int a = 0; for (int i = 0; i < 99; i++) { a = ++a; } System.out.println(a);
int a = 0; for (int i = 0; i < 99; i++) { a = a++; } System.out.println(a);
int a = 0; int b = 0; for (int i = 0; i < 99; i++) { a = a ++; b = a ++; } System.out.println(a); System.out.println(b);
第1段代码a的值为99,为什么第2段代码a却为0, 而第3段代码 a,b的值分区为99,98?
70
收起
正在回答
1回答
同学你好,1、在第二段代码中,a=a++是先进行赋值运算,再进行自增,a的初始值为0,先将赋值给a,再执行a++,当第二次循环时,同样先将之前的a是0赋值,再进行自增,循环完成后,a的值还是0,如果将a=去掉,只有a++,a进行自增运算,循环完成后,就是99了哦
2、在第三段代码中是同样的道理,a=a++先将a的初始值赋值a,再进行自增,所以此时的a最大值是98
然后b=a++; 是将a的值先赋给b,然后a在执行自增 所以b的值最后对应就是98,赋值完成后a再自增,就是99了!例如
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星