黑马程序员技术交流社区

标题: Java基础关于b=a++和b=++a的区别 [打印本页]

作者: 791180016    时间: 2015-5-23 10:59
标题: Java基础关于b=a++和b=++a的区别
b=a++;先给b赋值,再自增
b=++a;先自增,再给b赋值


好绕看了好几边才看懂和水军们分享下
例子:
public class TestOperator {
       
        public static void main(String[] args){
               
                double d = 10.2%3;
                System.out.println(d);
               
                int a = 3;
                int b = a++;   //执行完后,b=3。先给b赋值,再自增。
                int c = ++a;   //执行完后,c=5。先自增,再给b赋值
                System.out.println(a);   //执行完后,a=5(a自增了两次)
                System.out.println(b);   //执行完后,b=3
                System.out.println(c);   //执行完后,c=5
       }
}


作者: 海洋你好    时间: 2015-5-23 11:43
a++是先运算,后加一,++a是先加1在运算
作者: qian0217wei    时间: 2015-5-23 11:58
大家,你确定你不是来水的,这个问题很多人问过,也有很多人答过了!
作者: 南山忆    时间: 2015-5-23 12:29
就是优先级的问题啦
作者: mmakun    时间: 2015-5-23 13:10
还不错 ,受用了
作者: 791180016    时间: 2015-5-23 13:15
qian0217wei 发表于 2015-5-23 11:58
大家,你确定你不是来水的,这个问题很多人问过,也有很多人答过了!

我也是水军
作者: 冷雨敲窗被未温    时间: 2015-5-23 14:38
水水更健康!
作者: tougboy    时间: 2015-5-23 16:28
++ 或--在前  先运算 再用结果,在后  先拿结果,再进行自增或自减运算
作者: 时光匆匆    时间: 2015-5-23 17:02
一般都是单独用于控制循环的,了解就好了
作者: xmmsbb    时间: 2015-5-23 19:07
前者先运算后加1,后者相反
作者: haoguan10    时间: 2015-5-23 19:37
总算有个能看懂的问题了
作者: 董小姐    时间: 2015-5-23 21:15
a++是先运算,后加1,++a,是先家1,在运算
作者: wwb1105    时间: 2015-5-23 21:42
学习了  加油
作者: Melo    时间: 2015-5-23 22:11
a++是先赋值 在运算  ++a是先运算在赋值
作者: xiekai    时间: 2015-5-23 22:13
a++ 先参加运算在自加一, ++a 先自加一在参加运算
作者: 彭越    时间: 2015-5-23 22:15
a++是先运算,后加一,++a是先加1后运算。
作者: GNU-Linux    时间: 2015-5-23 22:39
非常感谢楼主分享,
我此前理解为,

例子:
public class TestOperator {
        
        public static void main(String[] args){
               
                double d = 10.2%3;
                System.out.println(d);
               
                int a = 3;


                int b = a++;   //执行完后,b=3。先给b赋值,再自增。(int b=a++;//执行完后,B=3,再++,b=5)     




                int c = ++a;   //执行完后,c=5。先自增,再给b赋值
                System.out.println(a);   //执行完后,a=5(a自增了两次)     (a=3,a不变)
                System.out.println(b);   //执行完后,b=3
                System.out.println(c);   //执行完后,c=5
       }
}

:loveliness:
作者: hieiyukina    时间: 2015-5-23 23:53
再复习一次 谢谢分享
作者: 二大爷    时间: 2015-5-23 23:55
这个题  有点水啊




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