为什么这个Java for循环终止虽然它应该无限循环?

时间:2018-04-10 07:52:31

标签: java loops for-loop jvm bytecode

以下循环应该无休止地循环,或者我认为。

int y=0;
for(int x=1; x>0; x++)
{
    y=y+x;
}

然而,循环确实终止了,我不知道为什么。

1 个答案:

答案 0 :(得分:3)

最终x将大于Integer.MAX_VALUE,然后它将溢出为负数 这是一个快速测试,向您展示我的意思

int val = 1000000;

for (int i = 0; i < 100; i++) {
     val = val * val;
     if (val < 0) {
         System.out.println(val);
     }
}