switch(Expresión){ case Valor1: ... [break;] case Valor2: ... [break;] case Valor3: ... [break;] [default:] ... }
Es una estructura de control condicional que permite seleccionar la instrucción a ejecutar entre varias alternativas dependiendo del valor de una expresión. Hace que se realice un salto en el flujo de ejecución a la etiqueta cuya valor coincida con el de la expresión. La expresión entre paréntesis del switch debe ser entera. Su resultado se comparará con los distintos valores en los case. Si coincide con uno de ellos se pasará la ejecución a la instrucción siguiente al case con dicho valor y se seguirán ejecutando las instrucciones consecutivas hasta encontrar una instrucción break o alcanzar el cierra llaves del switch. En caso de que el resultado de la expresión no coincida con ningún valor, se pasará la ejecución a la instrucción siguiente a la etiqueta default, si la hubiera, y se continuará como en un case. Los valores en los case deben ser una expresión constante. No puede haber dos case con el mismo valor.
El procedimiento diasMes muestra los días que tiene un mes.
#include <stdio.h> void diasMes(int mes){ switch(mes){ case 2: printf("Tiene 28 días y si es año bisiesto 29"); break; /* no continuar */ case 8-4: /* equivale a "case 4:" */ case 6: case 9: case 11: printf("Tiene 30 días"); break; default: printf("Tiene 31 días"); } }
Si mes no coincide con ningún valor de case, se selecciona la opción default; si esta última no existe, termina la ejecución del procedimiento.