Java中i=++i以及i=i++的区别

执行结果

i = ++1; //其效果就是i进行自增;
i = i++; //其效果是i = i;

为什么?i = i++中的i自增跑哪去了?

假设 i = 3;

先说i=++i的运算过程,如下:

i = i + 1; //先进行自增运算 i = 4
a = i; //这里假设++i的返回值为a a = 4
i = a; //执行 = 运算符,将++i的返回值给i,i = 4

i = i++的运算过程,如下:

a = i; //同样假设a为i++的返回值,a = 3
i = i + 1; //i进行自增运算,i = 4
i = a; //执行 = 运算符,将i++的返回值a给i,相当于又重新为i进行赋值操作,i = 3
//所以,尽管i进行自增运算了,但是在程序执行到 = 运算符时,结果又被冲刷掉了,而并不是 i = i + 1这个操作没有执行。

这里重点理解的是,任何表达式都有一个返回值,++i 和 i++的不同点便是,++i 先对i 进行运算,然后将运算后的结果作为返回值,而i++相反,先将i作为返回值,返回给其他运算符进行运算,然后对i进行计算操作。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值