Оператор continue
без метки будет повторно выполняться из условия, которое является самым внутренним во время или до, или циклом, и из выражения update - самым внутренним для цикла. Он часто используется для раннего завершения обработки цикла и, тем самым, для избежания глубоко вложенных операторов if. В следующем примере continue будет получать следующую строку, не обрабатывая следующий оператор в цикле.
while (getNext(line)) {
if (line.isEmpty() || line.isComment())
continue;
// More code here
}
С меткой continue будет выполняться так же, как и соответствующий петлю. Это можно использовать для выхода из глубоко вложенных циклов или просто для ясности. Если вы действительно извращены, вы также можете использовать его для имитации ограниченной формы goto
. В следующем примере continue
повторно выполнит цикл for (;;)
.
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
Иногда continue
также используется в качестве заполнителя, чтобы очистить тело пустого контура.
for (count = 0; foo.moreData(); count++) continue;
Тот же оператор без label
также существует в C и C ++. В Perl он называется next
.