黑马程序员技术交流社区
标题:
小三之《自加与自减》问题
[打印本页]
作者:
王浩威
时间:
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
楼主,我用很笨的代码给你测试一下这个结果,
class test
{public static void main(String[] args)
{
int a=9;//设置a=9
sop("a++:"+a++);//打印输出a++的结果为9
a=9;//设置a=9
sop("a--:"+a--);//打印输出a++的结果为9
a=9;//设置a=9
sop("++a:"+ ++a);//打印输出a++的结果为10
a=9;//设置a=9
sop("--a:"+ --a);//打印输出a++的结果为8
}
public static void sop(Object obj)
{System.out.println(obj);}
}
复制代码
由打印结果可以看出,
a++是在打印之后再自增
a--是在打印之后再自减
++a先加1,再打印
--a先减1,再打印
希望可以帮助你理解。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2