Estructuras de salto¶
Sentencias break y continue¶
Anteriormente vimos que la sentencia break
finaliza la ejecución de una sentencia switch
. Pues bien, cuando se utiliza break
en el bloque correspondiente a una sentencia while
, do
(do-while
) o for
, hace lo mismo: finaliza la ejecución del bucle.
Cuando las sentencias switch
, while
, do
o for
estén anidadas, la sentencia break
solamente finaliza la ejecución del bucle donde esté incluida.
/* Programa que muestra valores de i desde 1 hasta 10 */
public class SentenciaBreak1 {
public static void main(String[] args) {
//Bucle for infinito ya que se repite siempre
for(int i = 1; ; i++){
System.out.print(i + " | ");
if(i == 10)
break; //Permite la salida del bucle infinito
}
}
}
La sentencia continue
obliga a ejecutar la siguiente iteración del bucle while
, do
o for
en el que está contenida. Ejecuta el siguiente programa y observa que cada vez que se ejecuta la sentencia continue
, se inicia la ejecución del bloque de sentencias for
para un nuevo valor de n.
public class SentenciaContinue{
public static void main(String[] args) {
for(int n = 0; n <= 100; n++){
if(n %5 != 0){
continue; //si n no es múltiplo, siguiente iteración
}
System.out.println(n + " "); //imprime siguiente múltiplo
}
}
}
Se ha de intentar limitar el uso de las instrucciones continue
y solo utilizarlas cuando esto simplifique el entendimiento del programa. Se puede implementar cualquier bucle sin el uso de la instrucción continue
.
Sentencias break y continue con etiquetas¶
Con las sentencias break
y continue
se puede también utilizar una etiqueta para indicar dónde se debe reanudar la ejecución. El uso de etiquetas es una mala práctica en programación, por lo que debe reducirse a casos excepcionales, pero se comenta aquí por tener conciencia de su existencia.