为什么自增后不加1呢?说下原理。

为什么自增后不加1呢?说下原理。


int a=2;

System.out.println(a++);

System.out.println(a);

System.out.println(++a);

正在回答

登陆购买课程后可参与讨论,去登陆

6回答

当++后置的时候,会先输出,后自增,所以输出时还是2,但是执行结束之后会变成3,所以下一句打印a的时候,就是3了。

如果解决了你的疑惑,请采纳,祝学习愉快!

qq_知心大哥哥_0 2018-05-03 22:58:13

因为如果字母在前面是先使用数再自加一,如果只符号在前面的话就是先加在使用。

gsdad_white 2018-04-30 00:18:02

喜欢做梦的鱼

已经回复的很好了,不再多做赘述

慕运维1539224 2018-04-21 10:43:05

System.out.println(a++)---------(a++)=2, a=3,所以print出来的是2

System.out.println(a)------a=3,上面说的a++,所以a=2+1=3

System.out.println(++a)----------(++a)=a+1=3+1=4, 并且a=4, 所以print出来是4

需要注意(a++)和(++a)是不一样的。 两者都会让a+1, 但是a++这个整体等于原先的a, ++a等于加上1之后的a

木木灬菌 2018-04-20 18:03:00

你可以将运算和输出理解为传值,实际上是a的值在println里面运作,而前后置“++”本身与println无关。
前置的情况(++a),是a先进行了+1,它的新值“3”才会在println里运作;
后置的情况(a++),是a的值“2”先在println里运作,然后再在外面+1;


又比如
int x=1,y=0;

y=(x++)-2; 

//虽然“x++”被级别最高的小括号括起来了了,但是它在这一行中,仍然是以x本身的身份参加的运算,因为“++”后置,所以这一个式子输出等价的情况下可以写为:
y=(x)-2; x+=1;


同理如果是 y=(++x)-2;输出等价的情况下可以写为:

x+=1; y=(x)-2; 


喜欢做梦的鱼 2018-04-18 18:11:29

什么叫自增后不加1,没看懂

  • 提问者 LEternal #1
    就是a++ 2为什么不加1,为什么还是2呢
    2018-04-18 18:13:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师