I 100 libri da non perdere

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

Indice argomenti linguaggio C

La funzione fopen

La funzione fclose

Funzione fprintf

Funzione fscanf

Allocazione dinamica della memoria con malloc

Strutture in C

Typedef struct in C

Esercitazione sulle struct in C

Realizzare un menù di scelta in C

Strutture complesse in C

Come sommare gli elementi della cornice esterna

Come sommare due matrici

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Tavola pitagorica in C

Array multidimensionali

Quick sort in C

Selection sort in C

Merge sort in C

Insertion Sort in C