Declaración de ruptura en C/C++

La interrupción en C o C++ es una declaración de control de bucle que se utiliza para terminar el bucle. Tan pronto como se encuentra la sentencia break desde dentro de un bucle, las iteraciones del bucle se detienen allí y el control regresa del bucle inmediatamente a la primera sentencia después del bucle.
Sintaxis:

break;

Básicamente, las declaraciones de interrupción se utilizan en situaciones en las que no estamos seguros del número real de iteraciones del ciclo o queremos terminar el ciclo en función de alguna condición.

Veremos aquí el uso de la instrucción break con tres tipos diferentes de bucles:

  1. Bucles simples
  2. Bucles anidados
  3. Bucles infinitos

Veamos ahora los ejemplos para cada uno de los tres tipos de bucles anteriores usando la instrucción break.

  1. Bucles simples : considere la situación en la que queremos buscar un elemento en una array. Para hacer esto, use un bucle para recorrer la array a partir del primer índice y compare los elementos de la array con la clave dada.
    A continuación se muestra la implementación de esta idea:

    C

    // C program to illustrate 
    // Linear Search 
      
    #include <stdio.h>
      
    void findElement(int arr[], int size, int key) 
        // loop to traverse array and search for key 
        for (int i = 0; i < size; i++) { 
            if (arr[i] == key) { 
                printf("Element found at position: %d", (i + 1)); 
            
        
      
    int main() {
        int arr[] = { 1, 2, 3, 4, 5, 6 }; 
          
        // no of elements
        int n = 6;  
          
        // key to be searched 
        int key = 3; 
      
        // Calling function to find the key 
        findElement(arr, n, key); 
      
        return 0;
    }

    C++

    // CPP program to illustrate
    // Linear Search
    #include <iostream>
    using namespace std;
      
    void findElement(int arr[], int size, int key)
    {
        // loop to traverse array and search for key
        for (int i = 0; i < size; i++) {
            if (arr[i] == key) {
                cout << "Element found at position: " << (i + 1);
            }
        }
    }
      
    // Driver program to test above function
    int main()
    {
        int arr[] = { 1, 2, 3, 4, 5, 6 };
        int n = 6; // no of elements
        int key = 3; // key to be searched
      
        // Calling function to find the key
        findElement(arr, n, key);
      
        return 0;
    }

    Producción:

    Element found at index: 3
    

    El código anterior funciona bien sin errores. Pero el código anterior no es eficiente. El código anterior completa todas las iteraciones incluso después de encontrar el elemento. Suponga que hay 1000 elementos en la array y la clave que se buscará está presente en la primera posición, por lo que el enfoque anterior ejecutará 999 iteraciones que no tienen ningún propósito y son inútiles.
    Para evitar estas iteraciones inútiles, podemos usar la instrucción break en nuestro programa. Una vez que se encuentra la declaración de ruptura, el control del ciclo regresará inmediatamente después de que se cumpla la condición. Por lo tanto, usará la instrucción break con la condición if que compara la clave con los elementos de la array, como se muestra a continuación:

    C

    // C program to illustrate
    // using break statement 
    // in Linear Search
    #include <stdio.h>
      
      
    void findElement(int arr[], int size, int key)
    {
        // loop to traverse array and search for key
        for (int i = 0; i < size; i++) {
            if (arr[i] == key) {
                printf("Element found at position: %d", (i + 1)); 
       
                // using break to terminate loop execution
                break;
            }
        }
    }
      
    int main() {
        int arr[] = { 1, 2, 3, 4, 5, 6 };
          
        // no of elements
        int n = 6; 
          
        // key to be searched
        int key = 3;
       
        // Calling function to find the key
        findElement(arr, n, key);
       
        return 0;
    }

    C++

    // CPP program to illustrate
    // using break statement 
    // in Linear Search
    #include <iostream>
    using namespace std;
      
    void findElement(int arr[], int size, int key)
    {
        // loop to traverse array and search for key
        for (int i = 0; i < size; i++) {
            if (arr[i] == key) {
                cout << "Element found at position: " << (i + 1);
      
                // using break to terminate loop execution
                break;
            }
        }
    }
      
    // Driver program to test above function
    int main()
    {
        int arr[] = { 1, 2, 3, 4, 5, 6 };
        int n = 6; // no of elements
        int key = 3; // key to be searched
      
        // Calling function to find the key
        findElement(arr, n, key);
      
        return 0;
    }

    Producción:

    Element found at position: 3
    
  2. Bucles anidados : también podemos usar la instrucción break mientras trabajamos con bucles anidados. Si la instrucción break se usa en el ciclo más interno. El control saldrá solo del bucle más interno. A continuación se muestra el ejemplo del uso de ruptura con bucles anidados:

    C

    // C program to illustrate
    // using break statement 
    // in Nested loops
    #include <stdio.h>
      
    int main() {
        // nested for loops with break statement
        // at inner loop
        for (int i = 0; i < 5; i++) {
            for (int j = 1; j <= 10; j++) {
                if (j > 3)
                    break;
                else
                    printf("*");
            }
            printf("\n");
        }
       
        return 0;
    }

    C++

    // CPP program to illustrate
    // using break statement 
    // in Nested loops
    #include <iostream>
    using namespace std;
      
    int main()
    {
      
        // nested for loops with break statement
        // at inner loop
        for (int i = 0; i < 5; i++) {
            for (int j = 1; j <= 10; j++) {
                if (j > 3)
                    break;
                else
                    cout << "*";
            }
            cout << endl;
        }
      
        return 0;
    }

    Producción:

    ***
    ***
    ***
    ***
    ***
    

    En el código anterior podemos ver claramente que el ciclo interno está programado para ejecutarse durante 10 iteraciones. Pero tan pronto como el valor de j se vuelve mayor que 3, el ciclo interno deja de ejecutarse, lo que restringe el número de iteraciones del ciclo interno a solo 3 iteraciones. Sin embargo, la iteración del bucle externo no se ve afectada.
    Por lo tanto, break se aplica solo al ciclo dentro del cual está presente.

  3. Bucles infinitos : la instrucción break se puede incluir en un bucle infinito con una condición para terminar la ejecución del bucle infinito.
    Considere el siguiente bucle infinito:

    C

    // C program to illustrate
    // using break statement 
    // in Infinite loops
    #include <stdio.h>
      
    int main() {
        // loop initialization expression
        int i = 0;
       
        // infinite while loop
        while (1) {
            printf("%d ", i);
            i++;
        }
       
        return 0;
    }

    C++

    // CPP program to illustrate
    // using break statement 
    // in Infinite loops
    #include <iostream>
    using namespace std;
      
    int main()
    {
        // loop initialization expression
        int i = 0;
      
        // infinite while loop
        while (1) {
            cout << i << " ";
            i++;
        }
      
        return 0;
    }

    Nota : no ejecute el programa anterior en su compilador, ya que es un ciclo infinito, por lo que es posible que deba salir del compilador a la fuerza para finalizar el programa.

    En el programa anterior, la condición del bucle en la que termina el bucle siempre es verdadera. Entonces, el bucle se ejecuta un número infinito de veces. Podemos corregir esto usando la instrucción break como se muestra a continuación:

    C

    // C program to illustrate
    // using break statement 
    // in Infinite loops
    #include <stdio.h>
      
    int main() {
        // loop initialization expression
        int i = 1;
       
        // infinite while loop
        while (1) {
            if (i > 10)
                break;
       
            printf("%d ", i);
            i++;
        }
       
        return 0;
    }

    C++

    // CPP program to illustrate
    // using break statement 
    // in Infinite loops
    #include <iostream>
    using namespace std;
      
    int main()
    {
        // loop initialization expression
        int i = 1;
      
        // infinite while loop
        while (1) {
            if (i > 10)
                break;
      
            cout << i << " ";
            i++;
        }
      
        return 0;
    }

    Producción:

    1 2 3 4 5 6 7 8 9 10 
    

    El código anterior restringe el número de iteraciones de bucle a 10.

    Aparte de esto, break también se puede usar en declaraciones de cambio de caso.

    Este artículo es una contribución de Harsh Agarwal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

    Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *