continue
没有标签的语句将从最里面的循环while
或do
循环的条件以及最里面的循环的更新表达式重新执行for
。它通常用于尽早终止循环的处理,从而避免深层嵌套的if语句。在下面的示例continue中将获得下一行,而不在循环中处理以下语句。
while (getNext(line)) {
if (line.isEmpty() || line.isComment())
continue;
// More code here
}
带有标签,continue
将从带有相应标签的循环而不是最里面的循环重新执行。可以使用它来逃避深度嵌套的循环,或者只是为了清楚起见。
有时continue也用作占位符,以使空循环主体更清晰。
for (count = 0; foo.moreData(); count++)
continue;
C
和C ++
中也存在不带标签的相同语句。Perl
中的等效项是next
。
不建议使用这种类型的控制流,但是如果你选择这样做,也可以continue
用来模拟的有限形式goto。在下面的示例中,continue
将重新执行空for (;;)
循环。
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;