Continuar y romper puede cambiar el flujo de ejecución del bucle, pero en múltiples bucles, estas dos declaraciones no pueden saltar directamente desde el bucle interno al bucle exterior. En el lenguaje C, se pueden lograr múltiples saltos de bucle a través de las declaraciones de GOTO, pero el uso de declaraciones de GOTO en una estructura no bucleada hará que la estructura del programa sea desordenada y la legibilidad será peor. Por lo tanto, Java inventó una declaración de continuar y ruptura etiquetada, que en realidad es una declaración de GOTO con restricciones específicamente para bucles.
Por lo general, la instrucción Continuar (o Descanso) que usamos no tiene una etiqueta, lo que significa que la instrucción Continuar (o Descripción) se ejecuta en el bucle actual de forma predeterminada. Un bucle con etiquetas en realidad le da un nombre al bucle. Al usar la instrucción "Continuar (o romper) + etiqueta", en realidad está ejecutando la instrucción Continuar (o romper) en el bucle donde se encuentra la etiqueta.
Ahora usemos tres ejemplos para ilustrar un bucle etiquetado.
1. Doble bucle sin etiquetas
paquete javaleanning; public class 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+") ");} system.out.println ();}}}}}Resultados de ejecución
(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. Declaración de doble bucle con etiquetas, instrucción "Break+Label"
En este ejemplo, es un doble para bucle. Etiquetamos el comienzo del bucle externo (es decir, le damos un nombre al bucle externo) "externo". Cuando se usa "Break Outercycle" en el bucle interno, es equivalente a usar directamente la instrucción Break en el bucle externo.
Paquete Javaleanning; clase pública labletest {public static void main (string [] args) {outercycle: for (int i = 0; i <10; i ++) {for (int j = 0; j <10; j ++) {if (j == 5) {rompiendo ourcycle;} system.out.print ("("+i+","+j+") ");} System.out.println ();}}}Resultados de ejecución
(0,0) (0,1) (0,2) (0,3) (0,4)
3. Declaración de doble bucle con etiquetas, instrucción "Continuar+etiqueta"
En este ejemplo, es un doble para bucle. Etiquetamos el comienzo del bucle externo (es decir, le damos un nombre al bucle externo) "externo". Cuando se usa "Continuar con el exterior" en el bucle interno, es equivalente a usar directamente la instrucción Continuar en el bucle externo.
paquete javaleAnning; public class labletest {public static void main (string [] args) {OuterCycle: for (int i = 0; i <10; i ++) {for (int j = 0; j <10; j ++) {if (j == 5) {continuar outercycle;} system.print ("("+i+","+") ");} System.out.println ();}}}Resultados de ejecución
(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) (8) (9) (9, 9) (9,0) (9,1) (9,2) (9,3) (9,4)
Nota: Los resultados de ejecución reales se muestran en una línea (es decir, no se ejecuta ninguna declaración de ruptura de línea). Ahora tales resultados de visualización son solo por razones de diseño.