为什么这个 Java for 循环终止,尽管它应该无限循环?

Why does this Java for loop terminate although it is supposed to loop infinitely?

下面的循环应该是无限循环的,我认为是这样。

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

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

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

int val = 1000000;

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