【问题标题】:Why does this Java for loop terminate although it is supposed to loop infinitely? [duplicate]为什么这个 Java for 循环会终止,尽管它应该无限循环? [复制]
【发布时间】:2018-04-10 07:52:30
【问题描述】:

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

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

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

【问题讨论】:

    标签: java loops for-loop jvm bytecode


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 2017-09-21
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多