(;;)是无限循环的?

时间:2014-02-20 17:27:14

标签: java for-loop language-agnostic while-loop infinite-loop

像许多其他问题一样,while(true) {}是一个无限循环,for( ; ;)也是while(true),我的问题是true/false是有道理的,条件总是正确但没有生动的条件{{1在for( ; ;)中,后来如何是一个无限循环。

5 个答案:

答案 0 :(得分:14)

根据Java语言规范,14.14.1.2部分:

  

for ( ForInit <子>选择 ; Expression <子>选择 ; ForUpdate <子>选择 ) Statement

     

如果Expression不存在,或者它存在并且其评估产生的值(包括任何可能的拆箱)为true,则执行包含的Statement

由于标准以相同的方式处理缺少的表达式和以true求值的表达式,因此具有缺失表达式的for循环等效于无限循环。

答案 1 :(得分:1)

您没有指定任何条件来继续循环,因此它将永久执行。

答案 2 :(得分:0)

for循环的三个部分:变量初始化,条件和变量更新是可选的。如果条件不存在,则评估为真。循环继续,直到for循环块中的其他东西停止它。因为在你的例子中,循环是空的,所以它是一个无限循环。

答案 3 :(得分:0)

如果条件永远不会变为false,则循环变为无限循环。 for循环传统上用于此目的。由于不需要构成for循环的三个表达式,因此可以通过将条件表达式留空来创建无限循环。 当条件表达式不存在时,假定为 true

答案 4 :(得分:-8)

循环for( ; ;)是垃圾。如果它提供了一个无限循环,则由特定语言编译器控制,将其转换为无限循环。