像许多其他问题一样,while(true) {}
是一个无限循环,for( ; ;)
也是while(true)
,我的问题是true/false
是有道理的,条件总是正确但没有生动的条件{{1在for( ; ;)
中,后来如何是一个无限循环。
答案 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( ; ;)
是垃圾。如果它提供了一个无限循环,则由特定语言编译器控制,将其转换为无限循环。