Иногда можно встретить код выхода из некоторого количества вложенных циклов, например, такой:
flag1=false;
for (...) {
for (...) {
if (...) (flagx=true) break;}
}
if (flag1 == true) break;
}
В таких случаях можно использовать метки. Они требуются для указания точки перехода для break и continue. Их можно использовать в циклах for и while, операторах ветвления if или switch и блоке с простыми последовательными командами.
При этом метки разрешается использовать исключительно внутри блока команд. Таким образом перейти в другой цикл не получится.
outerLoop:
while (...) {
for (...) {
// Переходим на следующий шаг внешнего цикла while
if (...) continue outerLoop;
}
}
overNestedlfs:
if (...) {
if (...) {
} else {
if (...) break overNestedlfs;
}
// Недостижимо если выше дошли до break
}
someCodeSection:
{
...
if (x) break someCodeSection;
// Недостижимо в случае x == true
}
wholelfElse:
if (...) justlf: {
// Здесь можно использовать только wholelfElse и justlf
} else justElse: {
// Здесь можно использовать только wholelfElse и justElse
}