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

Ad esempio, nel seguente codice sorgente si utilizza la tecnica condizionale della scelta multipla.

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.

Ad esempio, se la variabile mese è uguale a due ( mese=2 ), il programma assegna il valore 28 alla variabile giorni ( giorni=28 ) senza procedere ulteriormente all'elaborazione del blocco case(3).

Sarebbe, infatti, inutile procedere con l'esecuzione degli altri blocchi case poiché, essendo associati a condizioni alternative, sarebbero tutti falsi.

Una volta assodato che la variabile mese è uguale a due, sappiamo che non può essere uguale a tre, e così via. È quindi inutile elaborare il resto delle istruzioni.

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

la rappresentazione grafica dell'algoritmo della scelta multipla

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.

Ad esempio, sappiamo che aprile, giugno, settembre e novembre hanno trenta giorni.

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 ).

Abbiamo così scritto in linguaggio C l'equivalente del proverbio "trenta dì porta novembre, con aprile, giugno e settembre. Di ventotto ce n'è uno (febbraio). Tutti gli altri ne han trentuno".

https://www.okpedia.it/switch-case-linguaggio-c


Segnala un errore o invia un suggerimento per migliorare la pagina


I salti condizionati in C

  1. Le strutture di controllo
  2. IF ELSE
  3. IF concatenato
  4. IF annidato
  5. IF in linea
  6. SWITCH CASE

FacebookTwitterLinkedinLinkedin