0

我已经研究了一段时间,但似乎无法弄清楚为什么这个循环不会终止。

public class Test{
    public static void main (String [] args){
        for (int i = 11; i > 10; i++){
            System.out.println(i);}
    }
}

该变量被初始化为一个满足循环终止要求的值,所以不应该没有任何输出吗?
抱歉,如果这是一个菜鸟问题,但我似乎无法通过搜索找到答案(或者我可能只是在搜索时没有适当地措辞问题)
循环一直执行直到我按 ctrl+c。
提前致谢。

4

3 回答 3

1

for循环中的第二个代码片段(此处为i > 10)是一个boolean表达式,如果true,则让循环再次运行。显然true一直都是(直到整数溢出)。

于 2013-04-29T22:27:35.290 回答
1

您的循环从 开始,在每次迭代执行i = 11时继续i > 10 == truei++

你看到它现在如何不终止了吗?

于 2013-04-29T22:27:55.783 回答
1

循环永远不会结束,结束条件表明循环将在 时停止i <= 10,并且i = 11在开始时,条件将评估为11 > 10 == true,进入无限循环。

好吧,严格来说,它在索引溢出后结束,但到达那个点需要很长时间。

于 2013-04-29T22:28:14.903 回答