Esta estructura permite considerar decisiones
para más de dos posibilidades. El formato general de esta sentencia
es:
![]() |
![]() |
La variable <var> se evalúa y compara sucesivamente con todas las constantes que aparecen junto a la palabra reservada case. Si alguna de ellas es igual al valor de <var>se ejecuta la sentencia o bloque de sentencias correspondientes. Si no aparece la palabra reservada break, continúa la comparación con el resto de las opciones. Si aparece break, se termina la ejecución de la estructura switch. La opción default, es opcional, indica la sentencia que se ejecuta en caso de que el valor de la variable <var> no se corresponda con ninguna de las constantes expresadas. La estructura switch no permite que dos constantes tengan el mismo valor. Si se evalúan constantes de caracteres, se emplean sus equivalentes numéricos. |
Ejemplo: Aquí
presentamos un ejemplo de switch con
el uso de un bucle while (se
verá en el capítulo siguiente). Dada la cadena "BuEnos dIas.".
Cuenta el número de vocales (ya sean mayúsculas o minúsculas).
Lo presentamos en forma de traza.
Ejemplos de estructura
switch:
NOTA: Vamos seleccionando una determinada opción del case, según sea a, e, i, o, u, si no es ninguna de ellas la que hemos introducido por teclado por medio de la función getchar(), ejecutaremos la opción default, que visualizará: Error. |
Ejemplo 2:
NOTA: Se presentará ROJO si eleccion representa r o R, se presentará BLANCO si eleccion representa b o B, y AZUL si eleccion representa a o A. No se visualizará nada si eleccion tiene asignado algún otro carácter. Si nos damos cuenta, en este ejemplo, cada grupo de sentencias tiene dos etiquetas case para contemplar mayúsculas y minúsculas, de la misma forma, cada uno de los dos primeros grupos acaba con la sentencia break.La sentencia break transfiere el control fuera de la sentencia switch para que no se ejecute más de un grupo de sentencias. |
NOTA: La función toupper me pasa a mayúscula el carácter que introduzca, si el carácter introducido no es ni R, ni B, ni A, por medio de default visualizaré la palabra: ERROR. |
Ejemplo 4: Suponemos
indicador
una
variable entera, x
e
y,
variables de coma flotante:
NOTA: En este ejemplo asigno a y un determinado valor, según lo que valga la variable indicador, pudiendo ser -1, 0, 1, y 2 ó 3 (ya que en este último caso, tanto si es 2, como si es 3, asignaré a la variable y el valor de 2*(x+1)); en caso de no ser indicador ninguno de los valores mencionados anteriormente, asignaremos a la y el valor de 0. |
Ejemplo 1:
/* si al entrar al switch la x tiene el valor de 1, entonces entraré en el siguiente switch, y me comportaré como en un switch normal, tener en cuenta que el break del switch(y) me sacaría fuera de este switch, por eso encuentro, otro break, al final del case 1 del switch(x), que me saca fuera de este otro switch. */ |