i++与++i的区别是:1、++i是先改变i的值即加1后再使用i的值;而i++是先使用i的值在改变它的值即加;2、for循环内部仅形式不同:当i++循环和++i循环在for循环内部,虽然形式上明显不同,但输出结果可以一样。
一、java的for循环语句中的i++与++i的区别
1、++i是先改变i的值即加1后再使用i的值;而i++是先使用i的值在改变它的值即加。
2、for循环内部仅形式不同:当i++循环和++i循环在for循环内部,虽然形式上明显不同,但输出结果可以一样。
3、printf()输出函数内,不仅形式不同且输出结果也不同:i++和++i,二者在形式上明显不同,且输出结果也不同,输出值分别为1和2。
另外两者的运行时间有差别,当循环此时较少没多少出入,但是当我们循环的次数上去了那么这差距就有点明显了。然后仔细探考后发现:在Java中i++语句是需要一个临时变量取存储返回自增前的值,而++i不需要。这样就导致使用i++时系统需要先申请一段内存空间,然后将值赛如进去,最后不用了才去释放。多了这么一系列操作时间当然多了啊,最后建议大家以后在写for循环且不影响逻辑的情况下多使用++i,少使用i++,这也算一定程度的系统优化
延伸阅读:
二、Java for循环语句
- 首先执行初始化 ( initialization )步骤,并且仅执行一次。 此步骤用于声明和初始化循环控制变量,此步骤以分号 (; )结束。
- 接下来,计算布尔表达式 ( boolean_expression )。 如果结果为: true ,则执行循环体。 如果为 false ,则不执行循环体,控制跳转到 for 循环之后的下一个语句。
- 在执行 for 循环体之后,控件跳回到 update 语句。 此语句用于更新任何循环控制变量。 此语句可以留空,最后是分号 (; )。
- 现在再次评估布尔表达式 ( boolean_expression )。 如果结果为: true ,则循环执行并重复该过程 (循环体,然后是更新步骤,然后是布尔表达式)。 布尔表达式为 false 后, for 循环终止。