Cargando...

break y continue en Java

Haz que i recorra de 1 a 5. Cuando i valga 3, sal del bucle con break antes de imprimir. La pantalla debe mostrar solo dos líneas: 1, luego 2. Esa parada temprana es una herramienta de esta página. La otra herramienta es continue; salta un paso y deja que el bucle siga, de modo que 3 no se imprima pero 4 y 5 sí.

break termina el bucle antes

Crea un archivo de programa pequeño llamado Skip.java. El public class de la primera línea debe coincidir con el nombre del archivo: public class Skip. No dejes un nombre de clase antiguo Pulse o Beat en este archivo; el compilador espera que el nombre de la clase y el del archivo coincidan.
Dentro de main escribe un for que pueda parar antes:
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
break;
}
System.out.println(i);
}
La cabecera del for tiene la misma forma que ya conoces: inicio, prueba, paso. Dentro de las llaves, un if pregunta si i vale 3. Cuando eso es true, corre break;. break deja todo el bucle for de una vez. El println bajo el if no corre en ese paso, e i no llega a 4 ni a 5 dentro de este bucle. Cuando i es 1 o 2, el if es false, así que println(i) escribe el número. Guarda el archivo antes de compilar.

Programa que se detiene con break

Esta es la versión que compilas primero.

break cuando i vale 3

java
public class Skip {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i = i + 1) {
            if (i == 3) {
                break;
            }
            System.out.println(i);
        }
    }
}

Desde la carpeta que guarda Skip.java escribe javac Skip.java. Cuando coinciden paréntesis, llaves y puntos y coma, javac no escribe ninguna línea propia. Luego escribe java Skip — no java Skip.java. Quita la terminación .java del segundo comando. Los mismos dos comandos funcionan en Windows y en macOS; esta página no necesita otra ortografía de shell para ninguno de los dos sistemas. El programa debe imprimir dos líneas y parar: 1, luego 2. No te pide que escribas. Si la terminal se queda esperando teclado, todavía hay una llamada nextLine de un ejercicio anterior en el archivo. Borra esa llamada y conserva el for con break de arriba. Una línea incorrecta en pantalla no significa que necesites instalar de nuevo el JDK.

Recorre la ejecución de break en orden. i empieza en 1. El if es false, así que println escribe 1. El paso guarda 2. El if es false otra vez, así que println escribe 2. El paso guarda 3. Ahora i == 3 es true, así que corre break y el for termina. No se imprime nada para 3, 4 o 5. Un bucle simple sin break habría impreso cinco líneas; break acortó el bucle después de dos impresiones. Tras break en ese paso no corre el paso y no se vuelve a preguntar la prueba, porque el bucle ya terminó.

continue salta un paso

Cambia el cuerpo para que continue reemplace a break, y deja el println después del if:
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
continue;
}
System.out.println(i);
}
Cuando i vale 3, continue; salta el resto de ese paso — incluido println — y el for pasa al paso y a la siguiente prueba. El bucle en sí no termina. La pantalla debe mostrar cuatro líneas: 1, 2, 4 y 5. El hueco es donde habría estado el 3.

continue cuando i vale 3

java
public class Skip {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i = i + 1) {
            if (i == 3) {
                continue;
            }
            System.out.println(i);
        }
    }
}

Compila y ejecuta otra vez: javac Skip.java, luego java Skip. Debes ver cuatro líneas. No cambiaste la cabecera del for — solo break pasó a ser continue. Cuando hayas visto cuatro líneas, puedes devolver break para volver a la primera demo. Ambas versiones son Java válido. Enseñan dos movimientos tempranos distintos dentro de la misma forma de bucle.

Lee otra vez la ejecución de continue. i va 1, 2, 3, 4, 5. Para 1 y 2 el if es false y se imprimen los números. Para 3, continue salta el println. Para 4 y 5 los números se imprimen otra vez. El bucle sigue terminando con su parada normal cuando i llega a 6. continue nunca termina el for; solo salta el resto de un paso. Después de continue, el for aún ejecuta su paso i = i + 1, así que el contador sigue avanzando aunque ese paso no haya impreso nada.

📊 herramienta y pantalla

Herramienta en i == 3 Pantalla
break 1 luego 2
continue 1 luego 2 luego 4 luego 5

Usa la tabla como comprobación después de una ejecución, no en lugar de una. break deja dos líneas. continue deja cuatro líneas con el 3 ausente. Si todavía aparece el 3 cuando querías continue, el println probablemente está encima del if — mueve println debajo de continue para que el salto lo alcance. Corrige el orden en vez de reinstalar Java.

Reglas que mantienen claras las dos herramientas

break y continue pertenecen al cuerpo de un bucle. Escribir break; solo en main sin un for o while envolvente hace fallar a javac. Lo mismo vale para continue;. En esta página un if elige el momento: cuando i vale 3. Más adelante puedes escribir otras pruebas; las demos mantienen i == 3 para que el cambio de pantalla se vea fácil.

break no es continue. break termina el bucle. continue salta un paso y se queda en el bucle. Ninguna de las dos es el break de la página de switch de la misma forma que lo usaste allí — aquí la estructura envolvente es un for. No dejes un while de la página Pulse que solo cuenta, ni un for de la página Beat sin if, en el mismo main y luego te preguntes por qué todavía se imprimen todos los números del 1 al 5. El main de esta sesión debe guardar el for más el if con break o continue.

Una confusión común es imprimir la palabra misma: System.out.println("break");. Eso escribe los caracteres break. No detiene un bucle. Otra confusión es poner println(i); encima del if que guarda continue, de modo que 3 aún se imprime y luego continue corre sin nada que saltar. Mantén el println después del if en ambas demos. Si escribes continue sin un bucle envolvente, javac informa un error; lo mismo pasa con un break solo fuera de cualquier bucle. En la forma de esta lección estas dos palabras solo tienen sentido dentro del cuerpo de un bucle.

Lo que puedes hacer ahora

Puedes poner break dentro de un bucle para salir antes, o continue para saltar un paso y seguir. Un if puede elegir cuándo ocurre eso. La página siguiente es for-each; allí un bucle recorre cada valor de una colección sin que escribas a mano el inicio, la prueba y el paso de la misma forma.

🧠 Pon a Prueba tu Conocimiento

Listo para Empezar

Pon a Prueba tu Conocimiento

Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema

❓
5
Preguntas
🎯
70%
Para Aprobar
♾️
∞
Tiempo
🔄
∞
Intentos

📝 Instrucciones

  • Lee cada pregunta cuidadosamente
  • Selecciona la mejor respuesta para cada pregunta
  • Puedes repetir el quiz tantas veces como quieras
  • Tu progreso se mostrará en la parte superior