Java for循环中i++和++i有什么区别

252 阅读1分钟

今天刚开始刷 leetcode 第一道算法题两数之和,力扣官方给出的解答for循环内用的都是++i,我就想++i和i++在for循环中有什么区别。

1. for循环中i++和++i的执行结果一致

大家都知道,i++是先使用i后执行i=i+1,而++i是先执行i=i+1再使用i。 但是在for循环中,它们的作用是一样的。

// java中for循环执行顺序,A只在第一次进入for循环执行
for(A;B;C){
    D;
}

2. ++i效率比i++好

image.png

image.png

经过测试后我发现++i要比i++的效率好上不少。

不论是++i还是i++都有一个共同点,都是先自增。

那么i++就会先申请用来存储自增前i的值的临时变量,再返回它。

// 模拟i++原理
int temp = i;
i = i + 1;
return temp;

++i直接返回自增之后的值,不会额外申请临时变量。

3. 结论

知道了++i的性能要优于i++,那么在以后的for循环中能用++i就用++i。