Есть несколько способов.
Вы можете break
из внутреннего цикла:
for(...) {
while(...) {
...
if(condition) {
break;
}
...
}
}
Это оставит внутренний цикл, и внешний цикл продолжится.
Или вы можете пометить внешний цикл и использовать continue
с именем.По умолчанию continue
и break
применяются к самому внутреннему циклу, но использование имени переопределяет это.
someName: for(...) {
while(...) {
...
if(condition) {
continue someName;
}
...
}
}
Или, как правило, вы можете достичь этого без break
или continue
:
for(...) {
boolean done = false;
while(... && !done) {
...
if(condition) {
done = true;
}
}
}
Некоторые люди советуют избегать break
и continue
по той же причине, по которой они советуют избегать return
в середине процедуры.Наличие более одной точки выхода для подпрограммы - это возможность сбить с толку читателя.
Однако это можно уменьшить, если подпрограмма будет короткой.Проблема в том, что ваши точки выхода теряются в длинных блоках кода.