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:
- Bucles simples
- Bucles anidados
- Bucles infinitos
Veamos ahora los ejemplos para cada uno de los tres tipos de bucles anteriores usando la instrucción break.
- 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
- 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. - 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.
¿Escribir código en un comentario? Utilice ide.geeksforgeeks.org , genere un enlace y compártalo aquí.
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