Esta estructura permite considerar decisiones para más de dos posibilidades. El formato
general de esta sentencia es:
NOTA: Cada case admite distintas sentencias, y a su vez, podemos poner distintas etiquetas case
para distintas opciones dentro de un mismo switch.
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.
Se puede tener un switch formando parte de la secuencia de sentencias de otro switch. Incluso si
las constantes case del switch interior y del exterior contienen valores comunes, no aparecen
http://decsai.ugr.es/~jfv/ed1/c/cdrom/cap4/cap42.htm 1/4
28/3/2018 Estructura SWITCH
conflictos.
Ejemplo.
Ejemplo 1:
#include<stdio.h>
main() {
char ch;
printf("Introduzca una vocal: ");
ch=getchar();
switch(ch) {
case 'a': puts("Se ha pulsado una a.");
break;
case 'e': puts("Se ha pulsado una a.");
break;
case 'i': puts("Se ha pulsado una a.");
break;
case 'o': puts("Se ha pulsado una a.");
break;
case 'u': puts("Se ha pulsado una a.");
break;
default: puts("Error");
}
}
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:
switch (eleccion=getchar()) {
case 'r':
case 'R':
http://decsai.ugr.es/~jfv/ed1/c/cdrom/cap4/cap42.htm 2/4
28/3/2018 Estructura SWITCH
printf("ROJO");
break;
case 'b':
case 'B':
printf("BLANCO");
break;
case 'a':
case 'A':
printf("AZUL");
break;
}
Ejemplo 3:
switch (eleccion=toupper(getchar())) {
case 'R':
printf("ROJO");
break;
case 'B':
printf("BLANCO");
break;
case 'A':
printf("AZUL");
break;
default:
printf("ERROR");
}
switch (indicador) {
case -1:
http://decsai.ugr.es/~jfv/ed1/c/cdrom/cap4/cap42.htm 3/4
28/3/2018 Estructura SWITCH
y=x * x;
break;
case 0:
y=x/2;
break;
case 1:
y=x;
break;
case 2:
case 3:
y=2 * (x+1);
break;
default:
y=0;
}
Ejemplo 1:
switch(x) {
case 1:
switch(y) {
case 0: printf("error de división por cero");
break;
case 1: x=1;
y=7;
}
break;
case 2:
...........
...........
http://decsai.ugr.es/~jfv/ed1/c/cdrom/cap4/cap42.htm 4/4