Cuando se desea poder elegir entre múltiples caminos, se debe recurrir a múltiples instrucciones if, o se puede utlizar la instrucción switch, denominada de decisión múltiple.
La instrucción switch analiza una variable y según el resultado de esa variable, selecciona el camino a seguir. Como la cantidad de caminos posibles a seguir debe ser finitas, la variable a analizar debe ser de un tipo discreto (int o char).
Veamos el siguiente ejemplo:
//
ejemplo6.cpp: Instrucción switch
//
#include
"stdafx.h"
#include
<iostream>
using
namespace std;
void main()
{
int n1,n2,r;
char op;
cout<<"Ingrese
dos números:";
cin>>n1>>n2;
cout<<"Ingrese
la operación a realizar:";
cin>>op;
switch(op)
{
case
'+': r = n1 + n2;
break;
case
'-': r = n1 - n2;
break;
case
'*': r = n1 * n2;
break;
case
'/': if (n2
!= 0)
{
r = n1 / n2;
}
else
{
r = 0;
cout<<"No
se puede dividir por cero.";
}
break;
default:
cout<<"Operación inválida.";
}
cout<< "El
Resultado es "<<r;
cin>>r;
}
La instrucción switch analiza el valor de la variable op, y elegirá el camino según dicho valor. Si el contenido de la variable es el caracter '+', continúa ejecutando el programa en el primer case. Si el contenido es '-' continúa ejecutando el segundo, y así con las cuatro operaciones matemáticas. La instrucción break al final de cada case hace que se finalice la ejecución del switch y pase a la instrucción siguiente, que muestra el resultado final. Si no se coloca el break al final de un case, se continúan ejecutando las instrucciones del case siguiente. (A veces, eso es lo deseado).
Si el valor ingresado en la variable no coincide con ninguno de los valores especificados en los case, se ejecutan las instrucciones que estén tras la etiqueta default. Esta etiqueta no es obligatoria, pero es muy recomendable colocarla siempre.
El último case de la instrucción (generalmente el default), no necesita de un break, ya que cuando termine no hay nada más dentro del switch, por lo que seguirá con la instrucción siguiente, que es lo mismo que haría si hubiera un break.
El siguiente ejemplo mustra diferentes alternativas de cases con y sin break.
// ejemplo7.cpp: Variantes de la
instrucción switch
//
#include
"stdafx.h"
#include
<iostream>
using
namespace std;
void
main()
{
int r;
cout<<"Ingrese
un número:";
cin>>r;
switch(r)
{
case 1: cout<<"Esta
instrucción se ejecuta en el caso 1"<<endl;
break;
case 2: cout<<"Esta
instrucción se ejecuta en el caso 2"<<endl;
case 3: cout<<"Esta
instrucción se ejecuta en los casos 2 y 3"<<endl;
break;
case 4:
case 5: cout<<"Esta
instrucción se ejecuta en los casos 4 y 5"<<endl;
break;
default:
cout<<"Esta instrucción se
ejecuta para cualquier caso mayor a 5.";
}
cin>>r;
}
Uno de los usos más comunes de la instrucción switch es para presentar al usuario menúes de opciones, correspondiendo un case a cada opción de menú.
No hay comentarios:
Publicar un comentario