我已经研究了一段时间,但似乎不能弄清楚为什么这个循环不终止。
public class Test{
public static void main (String [] args){
for (int i = 11; i > 10; i++){
System.out.println(i);}
}
}
变量初始化为满足循环终止要求的值,所以不应该没有任何输出吗?
抱歉,如果这是一个新手问题,但我似乎无法找到答案从搜索(或者也许我只是没有措辞问题适当,当我搜索)
循环一直执行,直到我按下ctrl+c。
谢谢。
for
循环中的第二个代码片段(这里是i > 10
)是boolean
表达式,如果是true
,则让循环再次运行。显然,它一直是true
(直到整数溢出)。
循环从i = 11
开始,在i > 10 == true
时继续,每次迭代执行i++
你看到它现在没有终止吗?
循环将永远不会结束,结束条件声明循环将在i <= 10
时停止,并且给定i = 11
在开始时,条件将求值为11 > 10 == true
,进入无限循环。
严格来说,它将在索引溢出后结束,但是到达那个点需要很长时间。