为什么代码在空的无限循环后执行?

我为此搜索了谷歌和堆栈溢出,但我没有得到这个问题的任何答案。在这里,在这段代码中有一个空的无限循环,然后打印“Hello, World”。从理论上讲,在无限循环之后,无限循环之后不应打印任何内容。但是当我们运行代码时,它会打印“Hello, World”。那么,为什么在无限循环之后编写的代码会执行呢?

public class Main{
    public static void main(String[] args){
        for(int i=0; i>=0; i++){}
        System.out.println("Hello, World");
    }
}

谢谢你。

回答

当 i 大于最大值(2147483648 - 可以用 32 位表示)时,它会溢出到它的最小值。它运行 exaclty Integer.MAX_VALUE 次,因为 Integer.MAX_VALUE + 1 是 Integer.MIN_VALUE,一个负数。

您可以像这样可视化您的代码:

class Main {
public static void main(String[] args) {
    int i = 0;
    for(i=0; i>=0; i++){}
    System.out.println("Hello, World : "+ i);
}

}


以上是为什么代码在空的无限循环后执行?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>