A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王浩威 中级黑马   /  2013-3-20 17:23  /  1855 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

++自加
-- 自减
int  a=90;
a++→a=a+1→90
a--  →a=a- 1→89

那++a与--a是什么意思?
谢谢回复者

点评

如果你的问题已经得到解决,请及时将主题改为[已解决],如果还有问题请继续追问!谢谢  发表于 2013-3-20 18:09

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

3 个回复

倒序浏览
我们一般吧++a和a++相比较
++a,是先加后用而a++是先用后加
同理--a是先减后用,a--是先用后减
如果是a++的话,在那一行代码中,a的值是不变的,下一行才发生变化,++a则是在那一行已经发生了变化。
a--和--a也是同样的道理,建议楼主写一个程序验证一下,一目了然
这道题面试也经常考
回复 使用道具 举报
本帖最后由 程媛媛 于 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++(--):是先赋值,后运算;

希望对你有所帮助。

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
楼主,我用很笨的代码给你测试一下这个结果,
  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,再打印
希望可以帮助你理解。

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马