++i与i++

经常搞混,写一下吧。

int i = 1;

//此时j=1,i=2

int j = i++;

//此时i、j均等于3

j = ++i;

 

前缀形式执行完运算后j才得到值,后缀形式执行运算前j就得到值,所以对于j来说前缀是增加前的值,后缀是增加增加后的值。

++i i++ 都是用于对变量 i 进行自增操作,相当于 i = i + 1,但它们在执行顺序和返回值上存在区别,以下是详细介绍: ### 区别 - **执行顺序**:i++ 是先使用变量 i 的当前值进行表达式的计算,然后再将 i 的值加 1;而 ++i 是先将 i 的值加 1,然后再使用更新后的值进行表达式的计算[^1][^2][^3]。 - **返回值**:i++ 返回的是自增前的值,而 ++i 返回的是自增后的值[^1]。 ### 示例 ```java public class TestAdd { public static void main(String[] args) { int a = 3; int b = a++; System.out.println("a=" + a); // 输出 a=4 System.out.println("b=" + b); // 输出 b=3 int x = 3; int y = ++x; System.out.println("x=" + x); // 输出 x=4 System.out.println("y=" + y); // 输出 y=4 } } ``` 在上述代码中,`b = a++` 先将 a 的值 3 赋给 b,然后 a 自增为 4;而 `y = ++x` 先将 x 自增为 4,然后将自增后的值 4 赋给 y [^2]。 ### 应用场景 - **i++ 的应用场景**:当需要先使用变量的当前值,再进行自增操作时,使用 i++。例如在遍历数组时,先使用当前索引访问数组元素,再将索引加 1。 ```java int[] arr = {1, 2, 3, 4, 5}; for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } ``` - **++i 的应用场景**:当需要先对变量进行自增操作,再使用更新后的值时,使用 ++i。例如在某些算法中,需要先将计数器加 1,再使用新的计数器值进行后续计算。 ```java int count = 0; while (++count < 10) { System.out.println(count); } ``` ### 注意事项 在某些复杂的表达式中,使用 i++++i 可能会导致结果不同,因此需要仔细考虑它们的执行顺序和返回值。例如在 `while` 循环中,`while (i++ < 10)` 和 `while (++i < 10)` 的初始判断条件不同,前者从 0 开始判断,后者从 1 开始判断 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值