通过一些旧的公司代码,我遇到了一个如下所示的for循环:
for (;;) { //Some stuff }
我尝试了Google,但找不到任何答案。我是在编程课上睡着了还是这是一个不寻常的循环?
一个for在Java循环结构如下-
for (initialization statement; condition check; update) loop body; 如你所见,这里有四个语句-
现在介绍你的for( ; ; )语法。它没有初始化语句,因此将不会执行任何操作。它的条件检查语句也是空的,这意味着在执行循环体之后它的评估结果为true。接下来,由于更新语句为空,因此不执行任何操作。然后再次执行条件检查,这将再次评估为true,然后整个过程将再次重复。
for( ; ; )
因此,你看到的是,这基本上是一个无限循环,没有初始化语句,其条件检查将始终为true,并且没有更新语句。这相当于-
while(true) { ..... }
这是Java中另一个流行的循环构造。
当使用这样的无限循环时,请务必注意中断条件,因为在大多数情况下,你不能让循环无限期地运行。要打破这些循环,可以使用break语句。结构如下-
if(some_condition_is_true) break; // This will cause execution to break out of its nearest loop
要么
if(some_condition_is_false) break;