Продолжение и разрыв может изменить поток выполнения петли, но в нескольких петлях эти два оператора не могут прыгать непосредственно от внутренней петли на внешнюю петлю. На языке C можно достичь многочисленных прыжков с циклами с помощью операторов GOTO, но использование операторов GOTO в структуре без петли приведет к неупорядоченности структуры программы, а читабельность будет хуже. Таким образом, Java изобрела оператор «Продолжить и перерыв», который на самом деле является оператором GOTO с ограничениями, специально предназначенными для петли.
Обычно операция «Продолжить» (или Break), который мы используем, не имеет метки, что означает, что оператор Continal (или Break) выполняется в текущем цикле по умолчанию. Петля с этикетками на самом деле дает петлю имя. При использовании оператора «Продолжить (или разорвать) + тег» он фактически выполняет оператор «Продолжить» (или Break) в цикле, где находится тег.
Теперь давайте используем три примера, чтобы проиллюстрировать помеченную петлю.
1. Двойной петлю без ярлыков
Пакет javaleanning; открытый класс labletest {public static void main (string [] args) {for (int i = 0; i <10; i ++) {for (int j = 0; j <10; j ++) {System.out.print ("("+i+","+j+")");Результаты бега
(0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (0,6) (0,7) (0,8) (0,9)
(1,0) (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) (1,9)
(2,0) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) (2,9)
(3,0) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) (3,8) (3,9)
(4,0) (4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7) (4,8) (4,9)
(5,0) (5,1) (5,2) (5,3) (5,4) (5,5) (5,6) (5,7) (5,8) (5,9)
(6,0) (6,1) (6,2) (6,3) (6,4) (6,5) (6,6) (6,7) (6,8) (6,9)
(7,0) (7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) (7,8) (7,9)
(8,0) (8,1) (8,2) (8,3) (8,4) (8,5) (8,6) (8,7) (8,8) (8,9)
(9,0) (9,1) (9,2) (9,3) (9,4) (9,5) (9,6) (9,7) (9,8) (9,9)
2. Двойной петлей с этикетками, оператор "Break+Label"
В этом примере это двойник для петли. Мы маркируем начало внешней петли (то есть даем внешнюю петлю имя) «OuterCycle». При использовании «Overcycle» во внутреннем цикле он эквивалентен непосредственному использованию оператора Break в цикле OuterCycle.
Пакет Javaleanning; открытый класс labletest {public static void main (string [] args) {uptercycle: for (int i = 0; i <10; i ++) {for (int j = 0; j <10; j ++) {if (j == 5) {break overcycle;} system.out.print ("("+i+","+j+")") ");} System.out.println ();}}}Результаты бега
(0,0) (0,1) (0,2) (0,3) (0,4)
3. Double Loop с этикетками, «Продолжить+метка»
В этом примере это двойник для петли. Мы маркируем начало внешней петли (то есть даем внешнюю петлю имя) «OuterCycle». При использовании «Продолжить верхнюю часть» во внутренней петле, он эквивалентен непосредственному использованию оператора продолжения в цикле OuterCycle.
Пакет javaleanning; открытый класс labletest {public static void main (string [] args) {uptercycle: for (int i = 0; i <10; i ++) {for (int j = 0; j <10; j ++) {if (j == 5) {продолжение uptercycle;} System.out.print (»("+i+",", ",", "+", "+", ","+",", ",") ");} System.out.println ();}}}Результаты бега
(0,0) (0,1) (0,2) (0,3) (0,4) (1,0) (1,1) (1,2) (1,3) (1,4) (2,0) (2,1) (2,2) (2,3) (2,4) (3,0) (3,1) (3,2) (3,3) (3,4) (4,0) (4,1) (4,2) (4,3) (4,4) (5,0) (5,1) (5,2) (5,3) (5,4) (6,0) (6,1) (6,2) (6,3) (6,4) (7,0) (7,1) (7,2) (7,3) (7,4) (8,0) (8,1) (8,2) (8,3) (8,4) (9,0) (9,1) (9,2) (9,3) (9,4)
ПРИМЕЧАНИЕ. Фактические результаты запуска отображаются на одной строке (то есть не выполняется оператор по разрыву строки). Теперь такие результаты отображения связаны только с причинами макета.