Original article: C Break and Continue Statements – Loop Control Statements in C Explained
En el lenguaje de programación C, hay momentos en los que querrás cambiar el comportamiento de un bucle. Y las declaraciones continue
y break
te ayudan a omitir iteraciones y salir de los bucles bajo ciertas condiciones.
En este tutorial, aprenderás cómo las declaraciones break
y continue
alteran el flujo de control de tu programa.
¡Comencemos!
Cómo Usar break para Salir de Bucles en C
En C, si deseas salir de un bucle cuando se cumple una condición específica, puedes utilizar la declaración break
.
Como con todas las declaraciones en C, la declaración break
debe terminar con un punto y coma (;).
Veamos un ejemplo para entender qué significa esto.
Considera el siguiente fragmento de código.
#include<stdio.h>
int main()
{
int count = 0;
while(count < 100)
{
printf("The value of count is %d \n", count);
count++;
}
return 0;
}
En este ejemplo, el bucle while repite las declaraciones en el cuerpo del bucle mientras que la variable count
sea menor que 100.
El contador comienza en 0, y aumenta en 1 con cada iteración.
Ahora, este es el flujo de control normal.
Modifiquemos esto un poco.
- Lee un entero
fav_num
del usuario. Supongamos quefav_num
es el número favorito del usuario del conjunto {0, 1, 2, ..., 99}. - Durante cada paso a través del bucle, debes verificar si el valor actual de
count
es igual afav_num
. - Te gustaría salir del bucle cuando
count
sea igual afav_num
.
Entonces, ¿cómo haces esto?
Lee a través del siguiente fragmento de código:
#include<stdio.h>
int main()
{
// Read in the user's favorite number
int fav_num;
printf("Enter your favorite number from 0 to 99: ");
scanf("%d", &fav_num);
int count = 0;
while(count < 100)
{
printf("\nThe value of count is %d.", count);
if (count == fav_num)
break;
count++;
}
return 0;
}
Durante cada paso a través del bucle, utilizas if (count == fav_num)
para verificar si count
es igual a fav_num
.
Luego agregas la declaración break;
al cuerpo del condicional if
.
Mientras count
≠ fav_num
, el control nunca alcanza la declaración break;
.
Cuando count
es igual a fav_num
, se activa la declaración break;
, y luego sales del bucle. El control ahora llega a la primera declaración fuera del bucle.
A continuación se muestra un ejemplo de salida:
Observa cómo el control sale del bucle una vez que el contador alcanza 3, que aquí es fav_num
.
En la próxima sección, verás otro ejemplo que reforzará tu comprensión.
Ejemplo de Declaración break en C
▶ Considera el siguiente ejemplo:
A[10]
es un arreglo de 10 enteros, inicializado con ceros.- Deseas leer los elementos del arreglo
A
del usuario y calcular la suma de los elementos en el arreglo. - Sin embargo, requieres que cada elemento de
A
no sea mayor que 20. - Una vez que el usuario ingresa un número mayor a 20, optas por terminar el bucle. Aquí es donde entra en juego la declaración
break;
.
Ahora, lee el siguiente fragmento de código que hace exactamente esto.
#include <stdio.h>
int main()
{
int A[10] = {0};
int sum = 0;
for(int i = 0; i < 10; i++)
{
printf("Enter a number: ");
scanf("%d",&A[i]);
if (A[i] > 20)
break;
sum += A[i];
}
printf("Sum: %d",sum);
return 0;
}
- Aquí, la
sum
se inicializa en0
. En cada paso a través del bucle, se le pide al usuario que ingrese un número. - El número ingresado se suma al valor actual de
sum
. - Si el usuario ingresa un número mayor que 20, el control sale del bucle.
Observa cómo el bucle termina una vez que el usuario ingresa un número mayor que 20
, en este caso 21
. Posteriormente se imprime la suma de los otros dos números (2 y 3).
Si has utilizado la declaración switch
en C, probablemente hayas utilizado la declaración break;
para salir de la escalera de casos tan pronto como se encuentra una etiqueta de caso coincidente.
Sin embargo, este tutorial tiene como objetivo enseñar cómo utilizar las declaraciones break;
y continue;
para cambiar el comportamiento de los bucles.
Cómo usar continue para omitir Iteraciones en C
En C, si deseas omitir iteraciones en las que se cumpla una condición específica, puedes utilizar la declaración continue
.
A diferencia de la declaración break;
, la declaración continue;
no sale del bucle. En cambio, omite solo aquellas iteraciones en las que la condición es verdadera.
Una vez que se activa la declaración continue;
, se omiten las declaraciones en el resto del bucle. Y el control del bucle continúa con la siguiente iteración.
Ejemplo de Declaración continue
en C
Utilicemos el ejemplo de la sección anterior y modifiquémoslo un poco.
Digamos que no deseas salir del bucle cuando el usuario ingresa un número mayor que 20. Más bien, deseas ignorar esas entradas particulares y calcular la suma de los números restantes en el arreglo A
.
Supongamos que el usuario ingresa 10 números, 3 de los cuales son mayores que 20. Tu código ahora debería calcular y mostrar la suma de los 7 números restantes.
Entonces, ¿cómo lo haces?
Puedes utilizar la declaración continue;
para omitir solo aquellas iteraciones para las cuales la entrada del usuario fue mayor que 20. Y puedes hacerlo como se muestra en el código a continuación:
#include <stdio.h>
int main()
{
int A[10] = {0};
int sum = 0;
for(int i = 0; i < 10; i++)
{
printf("Enter a number: ");
scanf("%d",&A[i]);
if (A[i] > 20)
continue;
sum += A[i];
}
printf("Sum: %d",sum);
return 0;
}
En la salida de ejemplo, puedes observar que el primer número ingresado es 21, que es mayor que 20.
Sin embargo, el bucle se ejecuta 10 veces. Y si estás listo para un rápido ejercicio de suma, puedes notar que los números distintos de 21 (2, 3, 5, 4, 7, 15, 14, 2 y 5) suman efectivamente 57. ✅
Conclusión
En este tutorial, has aprendido cómo puedes utilizar las declaraciones break;
y continue;
para controlar bucles en C.
En resumen, has aprendido:
- cómo la declaración
break;
ayuda a salir de bucles bajo condiciones específicas. - cómo la declaración
continue;
ayuda a omitir iteraciones bajo condiciones específicas.
Espero que hayas encontrado útil este tutorial. ¡Feliz codificación! 😄