除非您有某种通常不可用的信息,否则这些循环在性能方面都是相同的.
循环开销通常不是性能瓶颈.
最重要的是为问题使用最简单和最清晰的循环.
我建议for在概念上更长,因为它可以用于初始化变量.相反,如果您在循环之前初始化变量,它将是相同的.
如果你比较字节码
public static void main(String... args) {
for (int i = 0; i < 10; i++) {
}
int i = 0;
while (i < 10) {
i++;
}
}
Run Code Online (Sandbox Code Playgroud)
是的
public static void main(java.lang.String...);
0: iconst_0
1: istore_1
2: iload_1
3: bipush 10
5: if_icmpge 14
8: iinc 1, 1
11: goto 2
14: iconst_0
15: istore_1
16: iload_1
17: bipush 10
19: if_icmpge 28
22: iinc 1, 1
25: goto 16
28: return
Run Code Online (Sandbox Code Playgroud)
您可以看到字节代码完全相同.
do/while非常相似,但区别在于它不检查第一次迭代.如果你总是想要至少循环一次do/while是正确的循环使用,不是因为它更快但是因为它更清晰.
| 归档时间: |
|
| 查看次数: |
362 次 |
| 最近记录: |