黑马程序员技术交流社区

标题: a++ 输出结果加解释 [打印本页]

作者: 笑笑精灵    时间: 2015-9-8 21:31
标题: a++ 输出结果加解释
class  Demo{
        public static void main(String[] args) {
                int a = 2;
                int b = 2;
                a = a++;
                b = a++;
               
                System.out.println(a);//3
                System.out.println(b);//2
        }
}
作者: 黑马小辛    时间: 2015-9-8 21:55
a = a++;
第一步:(a++)的值为2;第二步:a的值自加1,为3;第三步:将(a++)的值赋给a,此时a的值为2
b = b++;
第一步:(a++)的值为2;第二步:a的值自加1,为3;第三步:将(a++)的值赋给b,此时b的值为2,a的值为3
作者: stray_cat    时间: 2015-9-8 22:06
1.先运算a++表达式的值,因为++在后面所有,当前a的值(1)作为a++表达式的值(1)
2.计算++,即a自增,a变为3
3.再赋值,将步骤1中的表达式的值(1)赋值给a,此时a又变成了2
4.相当于在内从中a的值由2变为3,再由3变为2
b也是同理
作者: 方育伟    时间: 2015-9-8 22:13
a应该是2,b也是
作者: 张寰宇    时间: 2015-9-8 22:18
谢谢分享学习了
作者: 王乙帆    时间: 2015-9-8 22:28
666666666666
作者: c4anger    时间: 2015-9-8 22:34
感觉还是比较绕。
作者: Andy丶JF    时间: 2015-9-8 22:44
楼上解释得很清楚,慢慢学着就知道其实这个是有多简单了
作者: 果蝇    时间: 2015-9-8 22:46
基础的东西,用多了自然就没什么了
作者: 木木三    时间: 2015-9-8 22:49
画图理解好一点吧。
作者: 笑笑精灵    时间: 2015-9-10 19:49
黑马小辛 发表于 2015-9-8 21:55
a = a++;
第一步:(a++)的值为2;第二步:a的值自加1,为3;第三步:将(a++)的值赋给a,此时a的值为2
b ...

谢谢,分析的透彻,条理




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2