小编Len*_*enn的帖子

为什么For循环不会终止?

考虑以下代码:

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.

所以我假设,当我们增加ii = 2147483647,值i将变为负数或零,因此条件变为 …

java for-loop

4
推荐指数
1
解决办法
290
查看次数

标签 统计

for-loop ×1

java ×1