java中的自增++运算符一些新的理解

1.x++和++x的区别

对于java中x++和++x的区别,很多书上都只说明了:
x++是先运算后自加1
++x是先自加1后运算

例1:

int x=10;
int y = x++;
System.out.println("y="+y);
System.out.println("x="+x);

输出的结果为:

y=10
x=11

例2:

int x=10;
int y = ++x;
System.out.println("y="+y);
System.out.println("x="+x);

输出的结果为:

y=11
x=11

这两个例子都比较好理解,y=x++是先执行赋值y=x操作后执行x=x+1,y=++x是先执行x=x+1后进行y=x。

2.新的理解

例3:

int x=10;
int y = x++ + x;
System.out.println("y="+y);
System.out.println("x="+x);

输出结果:

y=21
x=11

按照之前的理解,x++属于先运算后自加。那么 “y=x++ + x”应该被理解为"y=10+10",然后x=x+1。结果应该是 y=20,为什么会输出y=21?

我个人总结的原因在于,先运算后自加中的“运算”是针对操作数而言的。
对于例1,赋值运算符左边只有一个操作数,这个操作数赋值完成后,运算就结束了,之后再进行x=x+1。所以y=10,x=11;
对于例3,加号为双目运算符,且执行顺序为从左往右。第一个操作数结果是10,到这一步运算结束,x自加1,此时x的值已经为11,于是第二个操作数x的值为11,执行结果是y=10+11=21;

例4:

int x=10;
int y = x++ + x + ++x;
System.out.println("y="+y);
System.out.println("x="+x);

根据前面的经验,运算结束针对是操作数,那么赋值右边有三个操作数,分别是10+11+12,最终y=33。

输出结果:

y=33
x=12

以上是java小白自学途中的一些个人理解,如有错误希望各位大佬指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值