Programación Instituto Tecnológico de Celaya SENTENCIAS CONDICIONALES MÚLTIPLES: switch Como ya se analizó anteriormente, una sentencia if-else posee sólo dos alternativas. Dicha sentencia permite a un programa seleccionar entre dos acciones posibles (casos falso y verdadero). Existe muchas veces, sin embargo, la necesidad de incluir en un programa sentencias que permitan la selección de varias (más de dos) alternativas. Para ello se pueden utilizar sentencias if-else anidadas o múltiples sentencias if-else en secuencia, como ya se ha hecho con anterioridad. Una alternativa a esto es el uso de la sentencia switch, sentencia de C++ que se diseñó especialmente para representar una selección condicional múltiple. Sentencia switch La forma más simple de estudiar la sentencia switch es comenzar con un ejemplo que muestre su estructura básica. #include <iostream.h> #include<stdlib.h> int main() { int dia; cout<<”Dame un numero entero entre 1 y 7 \n”; cin>>dia; cout<<”\nEl dia correspondiente es “; switch(dia) { case 1: cout<<”Lunes”; break; case 2: cout<<”Martes”; break; case 3: cout<<”Miercoles”; break; case 4: cout<<”Jueves”; break; case 5: cout<<”Viernes”; break; case 6: cout<<”Sabado”; break; case 7: cout<<”Domingo”; break; Ingeniería Química Programación Instituto Tecnológico de Celaya default: cout<<”Error en el numero”; } cout<<”\n”; return 0; system(“PAUSE”); } Este ejemplo se discutió con anterioridad. Lo que el programa realiza es pedir un número entero entre 1 y 7 y, dependiendo de ese valor, mostrará en pantalla el nombre de un día de la semana. Lo primero que se escribe en dicha sentencia es el identificador switch. Cuando se ejecuta una sentencia switch, uno de varias alternativas se ejecuta. Para determinar cual de los casos se debe ejecutar se utiliza lo que se conoce como la expresión de control de la sentencia, que se escribe entre paréntesis. En el ejemplo la expresión de control es la variable dia. La expresión de control escrita entre paréntesis deberá siempre ser un valor booleano (FALSE o TRUE), un valor entero o un caracter. Durante la ejecución de la sentencia switch, se analiza la expresión de control para obtener su valor. Cada una de las alternativas de la selección múltiple se representa por el identificador case seguido de un valor constante (entero, caracter o booleano) y dos puntos. Lo que se hace a continuación es que se compara el valor de la expresión de control con los valores constantes de los casos de la sentencia. Cuando encuentra el caso cuya constante sea igual al valor de la expresión de control, se ejecutan las sentencias correspondientes a dicho caso (hasta encontrar una sentencia break). Si por alguna razón no se encuentra ninguna constante igual a la expresión de control, entonces se ejecutan las sentencias que corresponden al caso default, que generalmente se escribe al final de la sentencia switch (si éste caso no existiera, entonces no se ejecutaría ninguna de las alternativas). Observe que los casos de una sentencia switch se escriben entre llaves. Note que después de las sentencias de cada caso se tiene una sentencia break. Si las sentencias break no se incluyeran, entonces al ejecutarse uno de los casos, la computadora continuaría ejecutando las sentencias de todos los casos Ingeniería Química Programación Instituto Tecnológico de Celaya colocados por debajo del caso que si debe ejecutarse. La sentencia break automáticamente hace que termine la ejecución de la sentencia switch. De acuerdo a la anterior, la sintaxis de la sentencia switch es la siguiente: switch(expresion_de_control) { case constante_1: sentencias_del_caso_1: break; case constante_2: sentencias_del_caso_2: break; M case constante_n: sentencias_del_caso_n: break; default: sentencias_del_caso_default: } Este es otro ejemplo de aplicación de la sentencia switch: #include <iostream.h> #include<stdlib.h> int main() { char calificacion; cout<<”Dame la calificacion en escala de caracteres \n”; cin>>calificacion; cout<<”\nLa calificacion numerica equivalente es “; switch(calificacion) { case ‘A’: cout<<”100”; break; case ‘B’: cout<<”85”; break; Ingeniería Química Programación Instituto Tecnológico de Celaya case ‘C’: cout<<”70”; break; case ‘D’: case ‘F’: cout<<”Reprobatoria. Ve a estudiar”; break; default: cout<<”Error en la calificacion proporcionada”; } cout<<”\n”; return 0; system(“PAUSE”); } Sentencia switch para escribir Menús Una de las aplicaciones más útiles de la sentencia switch es el uso de un Menú. En esta aplicación, dependiendo de la selección del usuario, es posible escoger entre diversas funciones a ser ejecutadas, como se mostrará posteriormente a través de un ejercicio. Ingeniería Química