switch
Istruzione
Sintassi dell’istruzione
Particolarità dell’istruzione
Esercizio proposto
Verifica della soluzione
Scelte ed alternative 2
Scelte multiple
if( mese == 1 )
if
Quando occorre printf("Gennaio\n") ;
compiere una if( mese == 2 )
else if
printf("Febbraio\n") ;
sequenza di scelte, in else if( mese == 3 )
if
printf("Marzo\n") ;
funzione del valore di else if( mese == 4 )
if
printf("Aprile\n") ;
una variabile, occorre else if( mese == 5 )
if
if-
una catena di printf("Maggio\n") ;
switch ............................
Istruzione else
else if( mese == 9 )
if
printf("Settembre\n") ;
Lo stesso risultato si else if( mese == 10 )
if
printf("Ottobre\n") ;
può ottenere in forma else if( mese == 11 )
if
printf("Novembre\n") ;
più compatta else if( mese == 12 )
if
mediante l’istruzione printf("Dicembre\n") ;
else
switch printf("MESE ERRATO!\n") ;
4
switch
Sintassi istruzione
Precisazioni (1/2)
switch ( e )
{ e
L’espressione può essere una variabile oppure
case v1: un’espressione aritmetica
e=...
A1 ; int, char enum
Il tipo di dato deve essere o
e=v1 e=v2 altrimenti
break ; e=v3 Ciascun caso è identificato da una costante
A1
case v2: e
L’espressione viene confrontata con il valore
A2
A2 ; v1...vn
delle costanti
A3
break ; Il tipo di dato deve essere compatibile
...
case...break
Ciascun caso è delimitato da
An
A3 ; {...}
Non vi sono parentesi graffe
break ;
...........
default:
An ; 5 6
} break
Precisazioni (2/2) L’istruzione
break
Il significato di è di portare l’esecuzione
I casi possono apparire in qualsiasi ordine del programma fino al termine del costrutto
Devono essere tutti diversi switch
Verrà selezionato al più un caso }
“Salta alla chiusa graffa”:
default
Il caso viene valutato se e solo se break,
In assenza di l’esecuzione proseguirebbe
nessuno degli altri casi è stato considerato attraverso il caso successivo
Opzionale, ma sempre consigliato case,
Né il prossimo né eventuali parentesi graffe,
possono fermare l’esecuzione lineare
7 8
Casi multipli
Esempio
switch( mese )
switch
{
Potrebbe essere necessario eseguire lo stesso case 1:
codice in corrispondenza di diversi valori printf("Gennaio\n") ; mesi3.c
break ;
Istruzione switch
L’istruzione switch può essere usata con il linguaggio di programmazione C e C++.
È un'istruzione che può far evitare l’uso di molte “if”, così da rendere il programma più facile da vedere in caso ci dovessero essere degli errori.
Es.
Switch (a) { Case v1: A1; break; default: B1; }
L'espressione (a) può essere una variabile oppure un'espressione aritmetica.
"Case v1" è come scrivere "if", per esempio quando viene premuto il tasto "1". In questo caso passa al livello successivo e compie l'azione desiderata, come fare un calcolo e visualizzare un messaggio.
Non bisogna mai dimenticare di scrivere "break", perché impedisce di passare al caso successivo in caso ce ne fosse un altro.
Il "default" invece rappresenta una "else", che viene eseguito in caso si dovesse sbagliare la digitazione del tasto desiderato.
Come per i cicli, anche l'istruzione switch è racchiusa all'interno di due parentesi graffe, una che apre e una che chiude.
È un'istruzione che può essere usata per creare un semplice programma in cui si possa eseguire una somma di due numeri interi.
Esempio:
switch(operazione) { case 1: c=a+b; break;
La spiegazione completa si trova nel file in PDF da scaricare, con un esercizio e la soluzione per verificare lo svolgimento dell’esercizio.