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 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;
}
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:
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:
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++
Usando la sentencia de control switch en C++
Nota: después de un default no se coloca la sentecia break.
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.
ResponderEliminarGracias!
Eliminara quien le importa eso por dios, esto es un curso de programacion .
Eliminar