C++ || SENTENCIA DE CONTROL SWITCH
Pasamos al siguiente apartado en nuestro curso C++, ahora vamos a ver lo que es la
sentencia de control switch y finalizaremos con algunos ejercicios, luego de esto veremos las
estructuras de control en C++.
LA SENTENCIA SWITCH
La sentencia de control switch es una forma de escoger entre una y más opciones, este tipo
de selección puede aceptar tipos de datos int o char, pero nunca del tipo double. Su sintaxis
es:
switch (selector)
{
case opicion1:
sentencia1;
break;
case opicion2:
sentencia2;
break;
.
.
.
case opcion_n:
sentencia_n;
break;
default: //opcional
sentencia_m;
}
• selector se compara y evalúa con cada una de las opciones de la etiqueta case (la
expresión selector puede ser de tipo int, char, bool pero nunca de tipo float o double)
• case son las distintas acciones que se podrán realizar siempre y cuando coincida con
la expresión selector
• opción se puede ver como una condición, si es igual a la expresión selector, se
procederá a ejecutar sus sentencias
• sentencia acciones que se ejecutan en el programa si y solo si opción es igual a
selector
• break sentencia que siempre debe ir en cada case
• default es opcional de usar en nuestros programas C++, si ninguna opción es igual
a la expresión selector, se pasa a ejecutar este bloque de acciones
Aquí, si el valor de la expresión selector es igual a alguna de las etiquetas case, por ejemplo,
opcion2, entonces se ejecutarán las acciones de la sentencia2.
Ejemplo:
switch (x)
{
case 1:
cout<<"Numero 1";
break;
case 2:
cout<<"Numero 2";
break;
case 3:
cout<<"Numero 3"; break;
default:
cout<<"Numero fuera de rango";
}
Note que x es una variable, dependiendo del valor que tome x, se va a comparar con cada una
de las etiquetas case, en caso de ser iguales, procederá a ejecutar las sentencias de ese case,
en caso de que ningún case sea igual a x, entonces se ejecuta la opción default
cout<<"Numero fuera de rango";
La opción default es opcional, si no estuviera y x no fuera igual a ninguna de las etiquetas
case, no ocurriría nada en el programa.
Ejemplo:
cout<<"Indique el tipo de comprador";
char tipo;
cin>> tipo;
switch (tipo)
{
case 'a': case 'A':
cout<<"Tipo A";
break;
case 'b': case 'B': cout<<"Tipo B";
break;
case 'c': case 'C': cout<<"Tipo C";
break;
}
Aquí no hemos usado el default porque como dije, es opcional, algo que destacar es la
implementación de dos etiquetas case juntas
case 'a': case 'A':
Esto se puede hacer, incluso con más etiquetas case, recuerda que las etiquetas case son
opciones, es decir, si la variable tipo es igual a 'a' o es igual a 'A' entonces escribir Tipo A.
Nota: puede usar tantos case sean necesarios para ejecutar una misma acción, algo que no se
debe hacer es usar la misma etiqueta case dos veces.
Nota: si se olvidan del break en la sentencia switch, el compilador no mostrará un mensaje
de error, lo que sí va a ocurrir es que la sentencia asociada con la etiqueta, jamás se
ejecutará. La sentencia switch en C++ es muy útil para implementar menús, imaginen el
menú de un restaurante, de una venta de diferentes helados, todos tendrían múltiples
opciones. La sentencia switch en c++ es similar a la sentencia if-else, para ver eso veremos
un claro ejemplo.
Usando la sentencia if-else en C++
if ((letra == 'a') || (letra == 'A')) { cout<<"Es una vocal"<<endl; }
else if ((letra == 'e') || (letra == 'E')) { cout<<"Es una vocal"<<endl;
} else if ((letra == 'i') || (letra == 'I')) { cout<<"Es una
vocal"<<endl; } else if ((letra == 'o') || (letra == 'O')) { cout<<"Es
una vocal"<<endl; } else if ((letra == 'u') || (letra == 'U')) {
cout<<"Es una vocal"<<endl; } else { cout<<"No es una vocal"<<endl; }
Usando la sentencia de control switch en C++
switch (letra)
case 'a': case 'A':
case 'e': case 'E':
case 'i': case 'I':
case 'o': case 'O':
case 'u': case 'U':
cout<<"Es una vocal";
break;
default:
cout<<"No es una vocal";
}
Nota: después de un default no se coloca la sentencia break.
Ejercicios :