Le strutture di controllo nel linguaggio C

6. SWITCH CASE

Il salto condizionale a scelta multipla nel linguaggio C si realizza con l'istruzione SWITCH che consente di eseguire diversi blocchi di istruzione a seconda del valore di una variabile di controllo.

La sintassi dell'istruzione Switch Case 

L'istruzione SWITCH è composta da una espressione di controllo e da diversi blocchi di istruzione CASE, ognuno dei quali è associato a un particolare valore dell'espressione di controllo iniziale.

switch ( espressione ) { 

case costante1: istruzioni1; 

case costante2: istruzioni2; 

case costante3: istruzioni3; .

... 

default:istruzioni; 

break; 

}

L'ultimo blocco di istruzioni è detto DEFAULT e non è condizionato a nessun valore. Viene eseguito quando tutte le CASE precedenti sono false.

Un esempio pratico

switch ( mese ) { 

case (1): giorni=31; 

break; 

case(2):giorni=28; 

break; 

case(3):giorni=31; break; 

...

}

Ciascun blocco di istruzione CASE è seguito dall'istruzione BREAK che indica al programma di interrompere l'esecuzione della scelta multipla nel caso quando un singolo blocco case viene eseguito.

L'algoritmo della scelta multipla può essere rappresentato nel seguente modo:


L'attributo Default nell'istruzione Switch Case

L'istruzione SWITCH CASE può essere ottimizzata quando più valori sono associati a uno stesso blocco di istruzioni.

Possiamo riscrivere l'esempio precedente nel seguente modo:

switch ( mese ) { 

case (4): 

case (6): 

case (9): 

case (11): giorni=30; 

break; 

case(2): giorni=28; 

break; 

default: giorni:31; 

}

Se la variabile mese è uguale a 4, 6, 9 o 11, il programma esegue il primo blocco di istruzioni CASE e assegna il valore trenta alla variabile giorni ( giorni=30 ). In caso contrario, il programma procede a elaborare la seconda CASE dove verifica se la variabile mese è uguale a 2. Se è vero, assegna il valore ventotto alla variabile giorni ( giorni=28 ). Se anche quest'ultima condizione è falsa, il programma esegue l'ultimo blocco di DEFAULT, in cui si assegna alla variabile giorni il valore trentuno (giorni=31 ).