Break

🧩 Break y Continue en Java

Continuaremos con el ejemplo del tutorial anterior.

Tenemos este programa: pide input y termina cuando el usuario escribe "salir".

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = "";

        while (!input.equals("salir")) {
            System.out.print("Input: ");
            input = scanner.nextLine().toLowerCase();
            System.out.println(input);
        }
    }
}

⚠️ Pequeño problema

Si el usuario escribe "salir"

✅ el programa termina ❌ pero también imprime "salir" en la pantalla.

Eso se siente raro.

✅ Solución 1: comprobar antes de imprimir

Podemos imprimir solo si NO es "salir".

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = "";

        while (!input.equals("salir")) {
            System.out.print("Input: ");
            input = scanner.nextLine().toLowerCase();
            if (!input.equals("salir"))
                System.out.println(input);
        }
    }
}

✅ Ya no se imprime "salir".

🛑 Solución 2: usar break

Otra forma es salir inmediatamente del bucle cuando el usuario escriba "salir".

📌 break termina el bucle al instante.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = "";

        while (true) {
            System.out.print("Input: ");
            input = scanner.nextLine().toLowerCase();

            if (input.equals("salir"))
                break;

            System.out.println(input);
        }
    }
}

✅ Ahora no se imprime "salir", porque salimos antes.

🔁 ¿Qué hace exactamente break?

Cuando Java encuentra break dentro de un loop:

  • ignora el resto del código del loop
  • y sale inmediatamente del bucle

⏭️ La sentencia continue

También tenemos continue.

📌 continue NO termina el loop. Solo hace esto:

✅ “salte esta iteración” y regrese al inicio del bucle.

🧪 Ejemplo: si el usuario escribe "pasar"

  • no lo imprimimos
  • pero el programa sigue
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String input = "";

        while (true) {
            System.out.print("Input: ");
            input = scanner.nextLine().toLowerCase();

            if (input.equals("pasar"))
                continue;

            if (input.equals("salir"))
                break;

            System.out.println(input);
        }
    }
}

🧠 ¿Qué pasa cuando escribimos “pasar”?

Si el usuario escribe "pasar":

  • se activa continue
  • se ignora lo demás (no imprime nada)
  • vuelve a pedir input otra vez

✅ Perfecto para “inténtalo de nuevo”.

✅ Truco pro: while (true)

En esta implementación, realmente ya no necesitamos:

while (!input.equals("salir"))

Porque de todas formas salimos con break.

Por eso muchos programadores usan:

while (true)

y controlan la salida manualmente con break.

⚠️ Advertencia importante

Si usas while (true)

✅ asegúrate de tener un break ❌ si no, tendrás un bucle infinito que nunca termina.

🧾 Resumen

  • break → termina el loop completamente
  • continue → salta al inicio del loop (solo esa iteración)
  • while (true) → loop infinito controlado con break