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 que fav_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 a fav_num.
  • Te gustaría salir del bucle cuando count sea igual a fav_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 countfav_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:

image-1

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;
}
  1. Aquí, la sum se inicializa en 0. En cada paso a través del bucle, se le pide al usuario que ingrese un número.
  2. El número ingresado se suma al valor actual de sum.
  3. Si el usuario ingresa un número mayor que 20, el control sale del bucle.
image-191

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. ✅

image-192

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! 😄