考虑以下代码:
public class Test {
public static void main(String args[]) {
long startTime = System.nanoTime();
for(int i = 1; i > 0; i++) {
System.out.println(i);
}
System.out.println(System.nanoTime() - startTime);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
1
2
3
4
5
.
.
.
2147483643
2147483644
2147483645
2147483646
2147483647
16825610038948
Run Code Online (Sandbox Code Playgroud)
我无法startTime从Eclipse控制台获得价值,因为有大量的线路.
我们将上述For-Loop称为Infinite Loop因为i值始终大于零.从理论上讲,循环不应该终止.但是,因为我们使用int,其最大值是2147483647,For-Loop当我们递增时终止i,即i++何时终止i = 2147483647.
所以我假设,当我们增加i时i = 2147483647,值i将变为负数或零,因此条件变为 …