黑马程序员技术交流社区

标题: 小三之《自加与自减》问题 [打印本页]

作者: 王浩威    时间: 2013-3-20 17:23
标题: 小三之《自加与自减》问题
++自加
-- 自减
int  a=90;
a++→a=a+1→90
a--  →a=a- 1→89

那++a与--a是什么意思?
谢谢回复者
作者: Alex shaw    时间: 2013-3-20 17:30
我们一般吧++a和a++相比较
++a,是先加后用而a++是先用后加
同理--a是先减后用,a--是先用后减
如果是a++的话,在那一行代码中,a的值是不变的,下一行才发生变化,++a则是在那一行已经发生了变化。
a--和--a也是同样的道理,建议楼主写一个程序验证一下,一目了然
这道题面试也经常考
作者: 程媛媛    时间: 2013-3-20 17:43
本帖最后由 程媛媛 于 2013-3-20 17:47 编辑

举例说明:
int a = 1,b;
b = ++a;//(b=2,a=2,a先自加1,然后将值赋给b)
b = a++;//(b=1,a=2,a先将值赋给b,然后a在加1)
b = --a;  //(b =0,a=0, a现将值减1,然后将值赋给b)
b = a--; // (b=1,a=0 ,a先将值赋给b,然后a减1)

所以:++(--)a:是先运算,后赋值;
          a++(--):是先赋值,后运算;

希望对你有所帮助。
作者: michaelchen    时间: 2013-3-20 17:51
楼主,我用很笨的代码给你测试一下这个结果,
  1. class test
  2. {public static void main(String[] args)
  3. {
  4.        
  5.                         int a=9;//设置a=9
  6.                         sop("a++:"+a++);//打印输出a++的结果为9
  7.                         a=9;//设置a=9
  8.                         sop("a--:"+a--);//打印输出a++的结果为9
  9.                         a=9;//设置a=9
  10.                         sop("++a:"+ ++a);//打印输出a++的结果为10
  11.                         a=9;//设置a=9
  12.                         sop("--a:"+ --a);//打印输出a++的结果为8
  13.                
  14. }
  15. public static void sop(Object obj)
  16. {System.out.println(obj);}
  17. }
复制代码
由打印结果可以看出,
a++是在打印之后再自增
a--是在打印之后再自减
++a先加1,再打印
--a先减1,再打印
希望可以帮助你理解。




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