1. Introducción
Muchas veces pasa que no necesitas recorrer todas las iteraciones de un ciclo hasta el final, sino que quieres salirte antes — por ejemplo, en cuanto encuentras el elemento que buscas. Otras veces necesitas saltarte parte del trabajo y pasar al siguiente paso (por ejemplo, leíste datos y quieres saltarte su procesamiento). Eso es controlar el flujo dentro del ciclo.
Los operadores break y continue en C# están hechos justo para eso. Vamos a ver cómo funcionan y para qué te pueden servir en tareas reales.
2. Operador break: "¡Alto ahí!"
Teoría y sintaxis
El operador break se usa para salir inmediatamente del ciclo, estés donde estés dentro de su cuerpo. En cuanto la ejecución del programa llega a break, el ciclo termina al instante y la ejecución sigue desde la primera línea de código después del ciclo.
while (condición)
{
if (alguna-condición)
{
break;
}
// el resto del código del ciclo
}
Lo mismo funciona para for y para do-while:
for (int i = 0; i < 10; i++)
{
if (alguna-condición)
{
break;
}
// el resto del código del ciclo
}
Ejemplo 1: comprobar si un número es primo
Un número es primo si solo se divide entre 1 y sí mismo. Tenemos que comprobar si un número es primo: recorrer todos los posibles divisores desde 2 hasta n-1. Si resulta que nuestro número se divide entre algún divisor, ya no hace falta seguir comprobando — ¡el número no es primo! Se puede terminar el ciclo.
Ejemplo:
int number = 111;
bool encontrado = false;
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
encontrado = true;
Console.WriteLine("Encontramos divisor " + i );
break; // Paramos el ciclo, ¡no hace falta buscar más!
}
}
if (!encontrado)
{
Console.WriteLine("No se encontró divisor - el número es primo.");
}
Ejemplo 2: validación de la entrada del usuario
Vamos a escribir una pequeña app, por ejemplo, un formulario interactivo para recolectar datos:
while (true)
{
Console.Write("Introduce tu edad: ");
string input = Console.ReadLine();
int edad;
if (int.TryParse(input, out edad) && edad > 0)
{
Console.WriteLine($"¡Genial! Tu edad: {edad}");
break; // Los datos son correctos — ¡hora de terminar el ciclo!
}
else
{
Console.WriteLine("¡Error! Introduce una edad positiva válida.");
}
}
¿Para qué sirve esto?:
A veces necesitas que el ciclo corra para siempre (o mucho tiempo), hasta que el usuario meta datos correctos. En cuanto pasa el evento que nos interesa — usamos break y salimos del ciclo definitivamente.
3. Operador continue: "¡Siguiente, por favor!"
Teoría y sintaxis
A diferencia de break, el operador continue no termina todo el ciclo, sino que solo interrumpe la iteración actual: todo lo que está después de continue en el cuerpo del ciclo NO se ejecuta — se pasa a la siguiente iteración.
for (int i = 0; i < 10; i++)
{
if (condición)
{
continue;
}
// esta parte solo se ejecuta si continue no se activó
}
Ejemplo 3: saltar los números pares
Imagina que necesitas mostrar solo los números impares de un rango. Los pares hay que saltarlos.
for (int i = 1; i <= 10; i++)
{
if (i % 2 == 0)
{
continue; // si el número es par — ¡saltamos todo lo de abajo!
}
Console.WriteLine("Número impar: " + i);
}
¿Qué pasa aquí?:
Cuando i = 2, 4, 6... el ciclo encuentra continue y salta a la siguiente iteración, sin ejecutar Console.WriteLine.
Visualización paso a paso:
| i | i % 2 == 0 | Acción |
|---|---|---|
| 1 | false | imprimir, no hay continue |
| 2 | true | continue, no imprimir |
| 3 | false | imprimir, no hay continue |
| 4 | true | continue, no imprimir |
| ... | ... | ... |
Los operadores break y continue se usan un montón. Prácticamente en cada segundo ciclo. Te va a gustar trabajar con ellos.
GO TO FULL VERSION