小编Ben*_*Ben的帖子

for循环在与Integer.MAX_VALUE和使用System.out.println进行比较时提前终止

当我运行这个类时,for循环似乎提前终止

class Test {

    public static void main(String[] args) {
        int result = 0;
        int end = Integer.MAX_VALUE;
        int i;
        for (i = 1; i <= end; i += 2) {
            System.out.println(i);
        }
        System.out.println("End:" + i);
    }

}
Run Code Online (Sandbox Code Playgroud)

输出是:

1
3
5
...
31173
31175
End:31177
Run Code Online (Sandbox Code Playgroud)

为什么它会在那里结束?有趣的是,如果我System.out.println(i)在for循环中删除了,那么输出就是End:-2147483647.显然,值iwrapped round.

我正在使用的Java版本是

Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)
Run Code Online (Sandbox Code Playgroud)

java int for-loop max

8
推荐指数
1
解决办法
545
查看次数

标签 统计

for-loop ×1

int ×1

java ×1

max ×1