• El estatuto switch es una sentencia C++ que se utiliza para seleccionar una de entre múltiples alternativas.
• El estatuto switch es especialmente útil cuando la selección se basa en el valor de una variable simple o de una expresión simple denominada expresión de control o selector.
El valor de esta expresión puede ser de tipo int o char, pero no pude ser del tipo float ni double.
• Se utiliza para ejecutar acciones diferentes según el valor de una expresión o una variable. Consiste en una serie de etiquetas case y un case por omisión default.
Sintaxis:
switch ( variable)
{
case valor1 : accion1; break;
case valor2 : accion2; break;
.
.
case valor n : accionn;break;
default: accionD;
} ;
La variable es de tipo entero o caracter
La acción 1 se ejecuta si la variable adquiere el valor1.
La acción 2 se ejecuta si la variable adquiere el valor 2.
La acción n se ejecuta si la variable adquiere el valor n.
Cualquier otro valor de la variable conduce a la realización de la secuencia accionD, indicada por la palabra reservada default.
La secuencia default puede omitirse
Estatuto break
Cuando se encuentra una sentencia case que concuerda con el valor del switch se ejecutan las sentencias que le siguen y todas las demás a partir de ahí, a no ser que se introduzca una sentencia break para salir de la sentencia switch.
Ejemplo: Dada una fecha con números, muestra la fecha poniendo el mes con letras.
#include <iostream.h>
int dia, mes, anio;
char resp;
void main()
{
cout<<"Teclea el dia"<<endl;
cin>>dia;
cout<<"Teclea el mes"<<endl;
cin>>mes;
cout<<"Teclea el anio"<<endl;
cin>>anio;
cout<<dia<<" de ";
switch (mes)
{
case 1: cout<<"Enero"; break;
case 2: cout<<"Febrero"; break;
case 3: cout<<"Marzo"; break;
case 4: cout<<"Abril"; break;
case 5: cout<<"Mayo"; break;
case 6: cout<<"Junio"; break;
case 7: cout<<"Julio"; break;
case 8: cout<<"Agosto"; break;
case 9: cout<<"Septiembre"; break;
case 10: cout<<"Octubre"; break;
case 11: cout<<"Noviembre"; break;
case 12: cout<<"Diciembre"; break;
default: cout<<"ERROR";
};
cout<<" de "<<anio<<endl<<endl;
}
Ejemplo: Programa que pide un número de mes y escribe la cantidad de días que
tiene.
#include <iostream.h>
int mes;
void main()
{
cout<<"Teclea el mes"<<endl;
cin>>mes;
switch (mes)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: cout<<"31 dias"<<endl; // el break va hasta después del 12 pues si fue cualquiera de estos meses tiene 31
break; // días, y al encontrar el break sale del switch, si no fue ninguno sigue revisando
case 2: cout<<"28 o 29 dias"<<endl;
break;
case 4:
case 6:
case 9:
case 11: cout<<"30 dias"<<endl; break;
default: cout<<"ERROR";
};
}