в реальной практике достаточно часто используются вложенные dfffjiu. Соответственно, может возникнуть ситуация, когда из вложенно-f|< цикла нужно прервать внешний. Простое использование break или continue не решает этой задачи, однако в Java можно именовать блок кода явно указать операторам, к какому из них относится выполняемое действие. Делается это путем присвоения метки операторам do, while, for.
Метка — это любая допустимая в данном контексте лексема, окончившаяся двоеточием.
В данном случае при выполнении условия будет прервано выполнение цикла по ], цикл по i продолжится со следующего значения. Для того чтобы прервать выполнение обоих циклов, используется метка:
Оператор continue также может использоваться с именованными блоками.
Между операторами break и continue есть еще одно существенное отличие. Оператор break может использоваться с любым именованным блоком, в этом случае его действие в чем-топохоже на действие goto. Оператор continue (как и отмечалось ранее) может быть использован только в теле цикла. То есть такая конструкция будет вполне приемлемой:
1Ь1:{
if( val > maxVal) break Ibl;
}
В то время как оператор continue здесь применять нельзя. В данном случае при выполнении условия if выполнение блока с меткой 1Ы будет прервано, то есть управление будет передано на оператор (выражение), следующий непосредственно за закрывающей фигурной скобкой.
Метки используют пространство имен, отличное от пространства имен классов и методов.
Так, следующий пример кода будет вполне работоспособным:
public class Test { public TestO {}
public static void main(String[] args) {Test t = new TestO;
Для составления меток применяются те же синтаксические правила, что и для переменных, за тем исключением, что метки всегда оканчиваются двоеточием. Метки всегда должны быть привязаны к какому-либо блоку кода. Допускается использование меток с одинаковыми именами, но нельзя применять одинаковые имена в пределах видимости блока. Такая конструкция допустима: