Saltar a contenido

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.