Está en la página 1de 7

¿Qué es Condicional Switch?

Los condicionales Switch, son una estructura de control condicional,


que permite definir múltiples casos que puede llegar a cumplir una
variable cualquiera, y qué acción tomar en cualquiera de estas
situaciones, incluso es posible determinar qué acción llevar a cabo en
caso de no cumplir ninguna de las condiciones dadas.

Sintaxis del Condicional Switch en C++:


La sintaxis de un condicional Switch es bastante distinta a la de un
condicional típico, sin embargo es bastante intuitiva y fácil de
comprender, es solo cuestión de acostumbrarse. Veamos a
continuación la estructura general de un condicional Switch y luego
unos cuantos ejemplos.

switch(opción) //donde opción es la variable a comparar

case valor1: //Bloque de instrucciones 1;

break;

case valor2: //Bloque de instrucciones 2;

break;

case valor3: //Bloque de instrucciones 3;

break;

//Nótese que valor 1 2 y 3 son los valores que puede


tomar la opción

//la instrucción break es necesaria, para no ejecutar


todos los casos.
default: //Bloque de instrucciones por defecto;

//default, es el bloque que se ejecuta en caso de que


no se de ningún caso

Vamos ahora a ver línea por línea el anterior código para comprender
todo y quedar claros. Posteriormente veremos un ejemplo con valores
reales.
Solución Ejemplo 1:

Primero, determinemos los casos a ejecutar, tenemos tres casos


posibles (suponiendo que nuestro menú está compuesto por 3
opciones) el caso 1 para la opción 1, el dos para la 2 y así
sucesivamente. Nuestro caso por defecto (default) sería el caso de
error, que sucede cuando no se ingresa alguna de las 3 opciones.
Veamos entonces como hacer esto:

cout << "Ingrese la Opción a ejecutar: ";

int opcion = 0;

cin >> opcion;

switch(opcion)

case 1: cout << "Usted ha seleccionado la opción 1";

break;

case 2: cout << "Usted ha seleccionado la opción 2";

break;

case 3: cout << "Usted ha seleccionado la opción 3";

break;
default: cout << "Usted ha ingresado una opción
incorrecta";

El código funcional completo sería el siguiente:

# include "iostream"

using namespace std;

int main()

cout << "Ingrese la Opción a ejecutar: ";

int opcion = 0;

cin >> opcion;

switch(opcion)

case 1: cout << "Usted ha seleccionado la opción


1";

break;

case 2: cout << "Usted ha seleccionado la opción


2";

break;
case 3: cout << "Usted ha seleccionado la opción
3";

break;

default: cout << "Usted ha ingresado una opción


incorrecta";

// system("PAUSE"); //Solo ponla si no te da error

return 0;

Solución Ejemplo 2, usando char:

Veamos entonces como hacer esto:

cout << "Ingrese la Opción a ejecutar: ";

char opcion;

cin >> opcion;

switch(opcion)

case 'a': cout << "Usted ha seleccionado la opción


a";

break;

case 'b': cout << "Usted ha seleccionado la opción


b";

break;
case 'c': cout << "Usted ha seleccionado la opción
c";

break;

default: cout << "Usted ha ingresado una opción


incorrecta";

El código funcional completo sería el siguiente:

# include "iostream"

using namespace std;

int main()

cout << "Ingrese la Opción a ejecutar: ";

char opcion;

cin >> opcion;

switch(opcion)

case 'a': cout << "Usted ha seleccionado la


opción a";

break;

case 'b': cout << "Usted ha seleccionado la


opción b";
break;

case 'c': cout << "Usted ha seleccionado la


opción c";

break;

default: cout << "Usted ha ingresado una opción


incorrecta";

// system("PAUSE"); //Solo ponla si no te da error

return 0;

Eso es todo. Como ves, en esencia es el mismo código, pero debes


asegurarte de poner las diferentes opciones entre comillas simples ('),
puesto que la comparación es entre caracteres.

 En C++, NO puedes usar otra cosa diferente a número en cada


case. Si necesitas comparar cadenas de texto u otros tipos de
datos, seguramente un condicional como el if o if-else sean una
mejor alternativa
 Los caracteres también se pueden usar, pues en esencia se
pueden representar como números enteros (el lenguaje se
encarga de eso por ti). Sin embargo, como indiqué, otros tipos
de datos no son recomendables
 La sentencia default es opcional, así que si no lo deseas no la
debes poner. Sin embargo, es recomendable hacerlo, para así
controlar todas las opciones posibles y que tu programa no
quede a la "suerte" en ciertos casos.
 Dentro de cada case eres libre de poner varias líneas de código,
incluso otras estructuras como condicionales o ciclos. Sin
embargo, es preferible mantener tu código ordenado y no poner
muchas. Recomendaría no poner más de 5 y preferiblemente
solo una. Si deseas hacer tareas complejas al interior de un case
de un switch en C++, posiblemente sea mejor hacer esas tareas
en una función y llamar a esa función desde el case o
simplemente usar un if-else.

También podría gustarte