SWITCH – CASE LINGUAGGIO C
SWITCH – CASE LINGUAGGIO C Nella programmazione le istruzioni vengono eseguite dalla prima fino all’ultima. Per deviare il flusso delle scelte (ad esempio per scegliere tra l’opzione A e l’opzione B) basta porre delle condizioni che, se verificate, eseguono un pezzo di codice o altrimenti ne eseguono un altro; queste istruzioni particolari che permettono di incanalare il flusso si chiamano strutture di controllo condizionale o, più genericamente, istruzioni condizionali.
SWITCH – CASE LINGUAGGIO C Supponiamo di dover modificare l’esercizio n. 5 (programma calcolatrice), in modo tale da permettere all’utilizzatore di scegliere quale operazione eseguire, secondo il seguente menù: Quale operazione eseguire?: - digita 1 per eseguire una somma; - digita 2 per eseguire una divisione; - digita 3 per eseguire una sottrazione; - digita 4 per eseguire una moltiplicazione;
SWITCH – CASE LINGUAGGIO C switch (espressione) { case costante1: istruzione1 … [break]; case costante2: istruzione2 ... case costante3: istruzione3 [default:istruzione...]
ESERCIZI SWITCH-CASE IN C Esercizio 1 Si scriva un programma in linguaggio C che legga un numero intero da 1 a 5 (che corrisponde a una valutazione), e ne stampa il significato, secondo la notazione seguente: - 1: Gravemente insufficiente; - 2: Insufficiente; - 3: Sufficiente; - 4: Buono; - 5: Ottimo;
ESERCIZI SWITCH-CASE IN C Esercizio 1 - Soluzione #include <stdio.h> int main () { char voto; scanf("%c", &voto); switch(voto) { case 5: printf("Ottimo\n"); break; case 4: printf("Buono\n"); break; case 3: printf("Sufficiente\n"); break; case 2: printf("Insufficiente\n"); break; case 1: printf("Gravemente insufficiente\n"); break; default: printf("Quale codifica hai usato?\n"); } return 0;}
ESERCIZI SWITCH-CASE IN C Esercizio 2 Si scriva un programma in linguaggio C che permetta di stabilire la stagione corrispondente al mese inserito come intero dall’utente. Esempio: se l’utente digita 1 (Gennaio) il programma deve stampare Inverno. Qualora il mese sia Marzo, Giugno, Settembre e Dicembre, tutti mesi a cavallo di due stagioni, si richieda all’utente di specificare anche il giorno. Se il giorno e’ compreso tra 1 e 20 si considera la stagione precedente altrimenti quella successiva.
ESERCIZI SWITCH-CASE IN C Esercizio 2 - Soluzione #include <stdio.h> #include <stdlib.h> int main () { int mese, giorno; printf("Inserisci il numero del mese: "); scanf("%d", &mese); switch (mese) { case 1: case 2: printf("Inverno!\n"); break; case 4: case 5: printf("Primavera!\n"); case 7: case 8: printf("Estate!\n"); case 10: case 11: printf("Autunno!\n");
ESERCIZI SWITCH-CASE IN C Esercizio 2 - Soluzione case 3: printf("Inserire anche il giorno: "); scanf("%d", &giorno); if (giorno >= 1 && giorno <= 20) printf("Inverno!\n”); else printf("Primavera!\n"); break; case 6: printf("Inserire anche il giorno: "); If (giorno >= 1 && giorno <= 20) printf("Primavera!\ n"); else printf("Estate!\n"); case 9: printf("Inserire anche il giorno: "); if (giorno >= 1 && giorno <= 20) printf("Estate!\n"); else printf("Autunno!\n");
ESERCIZI SWITCH-CASE IN C Esercizio 2 - Soluzione case 12: printf("Inserire anche il giorno: "); scanf("%d", &giorno); if (giorno >= 1 && giorno <= 20) printf("Autunno!\n"); else printf("Inverno!\n"); break; default: printf ("Valore errato!"); system("PAUSE"); return 0; } (switch)