SWITCH es una proposicion condicional multiple que generaliza a la proposicion IF-ELSE.
Lo siguiente es un ejemplo tipico de SWITCH:
switch (c) {
case 'a':
++a_cnt;
break;
case 'b':
++b_cnt;
break;
case 'c':
case 'C':
++cC_cnt;
break;
default:
++otros_cnt;
}
Observese que en este ejemplo toda la proposicion SWITCH esta
encerrada entre llaves; esto sera asi en todas las situaciones,
excepto en las mas descuidadas. Se evalua la expresion entera que
sigue SWITCH y se efectuan las conversiones aritmeticas usuales;
el resultado debe ser un INT. En este ejemplo, la expresion es la
variable CHAR c. Despues de evaluar la expresion, el control
salta a la etiqueta apropiada CASE. Todas las etiquetas de los casos
deben ser exclusivas, y cero, una o mas etiquetas de caso pueden preceder
a cada proposicion. Por lo comun, la ultima proposicion antes de la
siguiente etiqueta es BREAK. Si no hay una proposicion BREAK,
la ejecucion "cae hasta" la siguiente proposicion en el caso que
sigue. La ausencia de proposiciones BREAK es una causa frecuente de
error en el uso de SWITCH. Por ultimo, puede haber una
proposicion etiquetada DEFAULT. Esto indica que que si la
evaluacion de SWITCH no coincide con ninguna etiqueta, entonces
toma en cuenta el DEFAULT.