CodeGym /Cursos /JAVA 25 SELF /Control del ciclo: operadores break y continue

Control del ciclo: operadores break y continue

JAVA 25 SELF
Nivel 4 , Lección 4
Disponible

1. Introducción

A menudo se da la situación en la que no necesitas recorrer todas las iteraciones de un bucle hasta el final, sino salir de él antes de tiempo — por ejemplo, en cuanto has encontrado el elemento buscado. En otros casos, necesitas saltarte parte del trabajo y pasar al siguiente paso (por ejemplo, has leído los datos y quieres omitir su procesamiento). Eso es precisamente el control del flujo dentro de un bucle.

Los operadores break y continue en Java están pensados precisamente para esto. Veamos cómo funcionan y para qué sirven en tareas reales.

2. Operador break: «¡Alto, máquina!»

Teoría y sintaxis

El operador break se utiliza para salir inmediatamente del bucle, estés donde estés en su cuerpo. En cuanto la ejecución del programa llega a break, el bucle termina en ese instante y la ejecución continúa con la primera línea de código después del bucle.


while (uslovie)
{
    if (kakoe-to_uslovie)
    {
        break;
    }
    // resto del código del bucle
}
Uso de break en un bucle while

Lo mismo funciona para for y para do-while:

for (int i = 0; i < 10; i++)
{
    if (kakoe-to_uslovie)
    {
        break;
    }
    // resto del código del bucle
}

Ejemplo 1: comprobación de si un número es primo

Un número es primo si solo es divisible por 1 y por sí mismo. Necesitamos comprobar si un número es primo: recorrer todos los posibles divisores de 2 a n-1. Si resulta que nuestro número es divisible por un divisor, ya no hace falta seguir comprobando — ¡el número no es primo! Se puede terminar el bucle.

Ejemplo:

int number = 111;
boolean found = false;
for (int i = 2; i < number; i++)
{
    if (number % i == 0)
    {
        found = true;
        System.out.println("Hemos encontrado un divisor " + i );
        break; // Detenemos el bucle, no hace falta buscar nada más                
    }    
}

if (!found)
{
    System.out.println("No se encontró divisor - el número es primo.");
}

Ejemplo 2: validación de la entrada del usuario

Escribamos una pequeña aplicación, por ejemplo, un cuestionario interactivo para recopilar datos:

while (true)
{
    System.out.print("Introduce tu edad: ");

    if (console.hasNextInt())
    {
        int age = console.nextInt();
        if (age > 0)
        {
            System.out.println("¡Estupendo! Tu edad: " + age);
            break; // los datos son correctos - salimos
        }
        else
        {
            System.out.println("¡Error! Introduce una edad positiva.");
        }
    }
    else
    {
        System.out.println("¡Error! Introduce un número.");
        console.nextLine(); // consumimos la entrada no válida
    }
}

Para qué sirve:
En ocasiones hay que ejecutar un bucle indefinidamente (o durante mucho tiempo) hasta que el usuario introduzca datos correctos. En cuanto ocurre el evento que nos vale — aplicamos break y salimos definitivamente del bucle.

3. Operador continue: «¡El siguiente, por favor!»

Teoría y sintaxis

A diferencia de break, el operador continue no termina todo el bucle, sino que solo interrumpe la iteración actual: todo lo que esté escrito después de continue en el cuerpo del bucle NO se ejecuta — se pasa a la siguiente iteración.


for (int i = 0; i < 10; i++)
{
    if (uslovie)
    {
        continue;
    }
    // esta parte se ejecutará solo si continue no se activó
}
Uso de continue en un bucle for

Ejemplo 3: omitir los números pares

Imagina que necesitas imprimir solo los números impares del intervalo. Los pares deben omitirse.


for (int i = 1; i <= 10; i++)
{
    if (i % 2 == 0)
    {
        continue; // si el número es par - ¡nos saltamos todo lo que viene debajo!
    }
    System.out.println("Número impar: " + i);
}
Omisión de números pares con continue

Qué está pasando:
Cuando i = 2, 4, 6... el bucle se encuentra con continue y salta inmediatamente a la siguiente iteración, sin ejecutar System.out.println.

Visualización paso a paso:

i i % 2 == 0 Acción
1 false imprimir, sin continue
2 true continue, sin imprimir
3 false imprimir, sin continue
... ... ...

Los operadores break y continue se usan muy a menudo. De hecho, en uno de cada dos bucles. Te gustará trabajar con ellos.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION