我深表歉意,如果在循环的空循环的某个地方提出了一个问题 - ;
我想知道是否有人知道为什么Java会为其解析器/编译器选择以(;;({}循环为true而不是null或void在a中评估一个空的条件语句?
由用户@mchi链接
https://developer.mozilla.org/en/javascript/reference/reference/statements/for
"在每个循环迭代之前要评估的表达式。如果此表达式评估为true,则执行语句。此条件测试是可选的。如果省略遵循构造之后的第一个表达式。">
我只是好奇。
有条件的语句必须是boolean
类型才能控制循环,与if()
或while()
语句中的表达式完全相同,必须是boolean
类型。
boolean
的唯一有效值是true
和false
。因此,null
和void
不适用,它们没有任何意义。
至于空的有条件语句,两个可能的值true
和false
中,它们选择了true
,因为绝对没有任何循环根本不需要循环的循环,虽然有很多情况我们需要我们需要的循环将永远循环的循环(或直到break
。(