Breaks en las sentencias switch de C++
La instrucción break
en C y C++ se usa para detener la iteración de un bucle si se cumple la condición requerida dentro de los bloques de código de la declaración switch
.
Si no se utiliza la sentencia break
, el programa seguirá ejecutándose hasta que se alcance el final de la sentencia switch
.
Primero, debemos entender cómo funciona una sentencia switch
.
Al comienzo de la declaración switch
, tenemos que proporcionar una expresión, luego el programa pasará por cada caso
en la declaración switch
, y si encuentra el caso que coincide con la expresión que proporcionamos, lo hará ejecutar ese caso
.
Si el proceso anterior no puede coincidir con la expresión, el programa saltará de la declaración switch
y ejecutará la declaración default
.
la instrucción switch
con break
en C++
#include <iostream>
using namespace std;
int main() {
int rating = 2;
switch (rating) {
case 1:
cout << "Rated as 1. ";
break;
case 2:
cout << "Rated as 2. ";
break;
case 3:
cout << "Rated as 3. ";
break;
case 4:
cout << "Rated as 4. ";
break;
case 5:
cout << "Rated as 5. ";
break;
}
return 0;
}
La expresión aquí es rating = 2
. Lo que hace el programa aquí es que pasa por cada caso
uno por uno y busca una posible coincidencia para la expresión proporcionada para dejar de ejecutar el bucle y lo finaliza, dándonos el siguiente resultado.
Rated as 2.
la instrucción switch
sin break
en C++
Ejecutemos el mismo código de nuevo, pero esta vez eliminando las declaraciones de break
después de cada caso.
#include <iostream>
using namespace std;
int main() {
int rating = 2;
switch (rating) {
case 1:
cout << "Rated as 1. ";
case 2:
cout << "Rated as 2. ";
case 3:
cout << "Rated as 3. ";
case 4:
cout << "Rated as 4. ";
case 5:
cout << "Rated as 5. ";
}
return 0;
}
Producción :
Rated as 2. Rated as 3. Rated as 4. Rated as 5.
Puede ver que sin la instrucción break
, el programa imprime el valor de cada caso
incluso después de que se cumpla el requisito.
La instrucción break
se utiliza para situaciones en las que se desconoce el número de veces que un bucle debe iterar o cuando el bucle cumple una determinada condición predefinida.
El cuerpo de la sentencia switch
no se ejecutará cuando no haya ninguna sentencia default
y ninguna coincidencia case
en el cuerpo de la sentencia. Sólo puede haber una sentencia default
en cualquier parte del cuerpo de la sentencia switch
.
Finalmente, la instrucción break
también se usa con bucles do, for y while. En esas situaciones, la sentencia break
obliga al programa a salir del bucle cuando se cumplen los criterios particulares.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.