Las Palabras Clave continue y break en Java
1. Introducción
En este breve artículo, presentaremos las palabras clave Java continue y break y nos centraremos en cómo usarlas en la práctica.
En pocas palabras, la ejecución de estas declaraciones provoca la ramificación del flujo de control actual y termina la ejecución del código en la iteración actual.
2. La Declaración break
La declaración break viene en dos formas: sin etiquetar y etiquetada.
2.1. break Sin Etiquetar
Podemos usar la declaración sin etiquetar para terminar un bucle for, while, do-while o un bloque switch-case:
for (int i = 0; i < 5; i++) {
if (i == 3) {
break;
}
}
Este fragmento define un bucle for que debe iterar cinco veces. Pero cuando el contador es igual a 3, la condición if se vuelve verdadera y la declaración break termina el bucle. Esto hace que el flujo de control se transfiera a la declaración que sigue después del final del bucle for.
En el caso de bucles anidados, una declaración break sin etiquetar solo termina el bucle interno en el que se encuentra. Los bucles externos continúan ejecutándose:
for (int filaNum = 0; filaNum < 3; filaNum++) {
for (int columnaNum = 0; columnaNum < 4; columnaNum++) {
if (columnaNum == 3) {
break;
}
}
}
Este fragmento tiene bucles for anidados. Cuando columnaNum
es igual a 3, la condición if se evalúa como true y la declaración break hace que el bucle for interno termine. Sin embargo, el bucle for externo continúa iterando.
2.2. break Etiquetada
También podemos usar una declaración break etiquetada para terminar un bucle for, while, do-while. Un break etiquetado termina el bucle exterior.
Al terminar, el flujo de control se transfiere a la declaración inmediatamente después del final del bucle exterior:
comparar:
for (int filaNum = 0; filaNum < 3; filaNum++) {
for (int columnaNum = 0; columnaNum < 4; columnaNum++) {
if (filaNum == 1 && columnaNum == 3) {
break comparar;
}
}
}
En este ejemplo, introdujimos una etiqueta justo antes del bucle exterior. Cuando filaNum
es igual a 1 y columnaNum
es igual a 3, la condición if se evalúa como true y la declaración break termina el bucle exterior.
El flujo de control se transfiere entonces al final del bucle for
exterior.
3. La Declaración continue
La declaración continue también viene en dos formas: sin etiquetar y etiquetada.
3.1. continue Sin Etiquetar
Podemos usar una declaración sin etiquetar para omitir la ejecución del resto de las declaraciones en la iteración actual de un bucle for, while o do-while. Salta hasta el final del bucle interno y continúa el bucle:
int contador = 0;
for (int filaNum = 0; filaNum < 3; filaNum++) {
for (int columnaNum = 0; columnaNum < 4; columnaNum++) {
if (columnaNum != 3) {
continue;
}
contador++;
}
}
En este fragmento, siempre que columnaNum
no sea igual a 3, la declaración continue sin etiquetar omite la iteración actual, evitando así el incremento de la variable contador
en esa iteración. Sin embargo, el bucle for externo continúa iterando. Por lo tanto, el incremento de contador
ocurre solo cuando columnaNum
es igual a 3 en cada iteración del bucle for externo.
3.2. continue
Etiquetada
También podemos usar una declaración continue etiquetada que omite el bucle externo. Al omitirlo, el flujo de control se transfiere al final del bucle exterior, lo que efectivamente continúa la iteración del bucle exterior:
int contador = 0;
compare:
for (int filaNum = 0; filaNum < 3; filaNum++) {
for (int columnaNum = 0; columnaNum < 4; columnaNum++) {
if (columnaNum == 3) {
contador++;
continue compare;
}
}
}
Introducimos una etiqueta justo antes del bucle exterior en este ejemplo. Cuando columnaNum
es igual a 3, se incrementa la variable contador
. La declaración continue etiquetada provoca que la iteración del bucle for exterior se omita.
El flujo de control se transfiere al final del bucle for exterior, que continúa con la siguiente iteración.
4. Conclusión
En este tutorial, hemos visto diferentes formas de usar las palabras clave break y continue como declaraciones de ramificación en Java.