没有标签的continue语句将从最内层while或do循环的条件以及最内层for循环的update表达式重新执行。它通常用于提前终止循环的处理,从而避免深层嵌套的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中的等价物。
这种类型的控制流是不推荐,但如果你这样选择,你也可以使用继续模拟有限形式的goto。在下面的例子中,continue将重新执行空的for(;;)循环。
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;