L’istruzione switch case è utilizzata quando ci sono dei problemi in cui la soluzione richiede una serie di scelte successive.
Infatti, utilizzare numerosi if a cascata, può essere una soluzione problematica. Allora è meglio ricorrere al costrutto di selezione multipla switch case.

Sintassi del costrutto switch case
La sintassi è la seguente:
switch(<Espressione>)
{
case <CostanteIntera1>:
<Istruzioni>;
case <CostanteIntera2>:
<Istruzioni>;
….
default
<Istruzioni>;
}
L’espressione valutata è di qualsiasi tipo intero e comunque verrà convertita in int.
Quindi, ad ogni case è associato un valore costante intero tra i possibili e potenziali valori che può assumere Espressione.
Nel caso in cui non si verifichi un case si passa al case successivo, fino a soddisfare la condizione.

Se nessuna delle costanti corrisponde al valore di Espressione allora viene eseguito il blocco default, se presente.
Ma il linguaggio C si dice che prevede il fall-trought automatico tra le clausole dello switch. Cioè anche quando una clausola viene eseguita, il controllo passa alle clausole successive (default compreso) e non si esce dallo switch.
Diventa necessario allora interrompere l’esecuzione sequenziale del programma e saltare alla fine dello switch.
Per farlo si pertanto utilizza l’istruzione break che consente l’uscita immediata dallo switch.
Nella prossima lezione vedremo un esempio di applicazione di switch case in C, al fine di comprenderne meglio l’utilizzo.

Alcuni link utili
Allocazione dinamica della memoria con malloc
Esercitazione sulle struct in C
Realizzare un menù di scelta in C
Come sommare gli elementi della cornice esterna