求大佬解惑!java递增操作符的前置与后置

直入正题:

int x = 0;

int y = x++;

System.out.println(x);

System.out.println(y);

//这个输出结果是1 和0

int x = 0;

int y = ++x;

System.out.println(x);

System.out.println(y);

//这个输出结果是1 和1

//这两段代码我理解,就是说++x 是先执行加减操作再运用它的值,而x++是先运用x的值再执行加减操作,但是请大佬看一下下面这段代码:

int x = 0;

System.out.println(x++);

System.out.println(x);

//这里的输出结果是0 和1

int x = 0;
x = x++;
System.out.println(x);
//这里的输出结果居然是0 

//大佬们,x = x++;按道理这里要先赋值后+1,但是赋值之后的+1操作哪里去了?对比第一块代码那里的结果是y = 0,但是x = 1 啊,为什么这里不一样呢?

  我可不可以理解为x = x++;这里有三步,第一步:将x最开始的值“0”,也就是要赋值给x的值“0”先存起来,但已经确定下来了,就他,这个叫“0”的小伙子要赋值给x了,只不过先不赋值,先做第二步:把x++;操作完成,也就是执行:x = x+1;此时x的值是“1”,然后再做第三步:将之前确定好的那个值“0”赋值给x,也就是执行x = 0;那么此时x的值就是“0”了,不知道想的对不对,完全没依据,就是猜的,求大佬指点迷津!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值