16. 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
- opcion 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 opcion 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 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 sentecia break.
Escoger, es con G. No con J.
Gracias!
a quien le importa eso por dios, esto es un curso de programacion .