1.7 - Struttura switch - case
Scritto da sergio il 29/08/2022 12:31:12
Ci sono casi dove la scelta che può effettuare il programma si sviluppa in casistiche ben definite,
in questo caso invece di annidare sequele di "if ... else ... " è più comodo e chiaro utilizzare
una struttura composta dalle parole chiave "switch" e "case".
Nell'esempio qui sotto, vengono accettati degli input da tastiera e conteggiati i totali delle tipologie di input.
La parola chiave "default" funge da "else", cioè prevedere l'elaborazione nel caso il nostro input non faccia scopa
con nessuno dei "case" previsti.
Code:
/* Contare i tipi di giudizio degli studenti */
#include <stdio.h>
main()
{
int giudizio;
int ottimoCount = 0, distintoCount = 0, buonoCount = 0,
sufficienteCount = 0, insufficienteCount = 0;
printf("Inserisci il giudizio: \n");
printf("Digita il carattere di EOF per terminare.\n");
while ((giudizio = getchar()) != EOF)
{
switch (giudizio)
{
case 'OTTIMO': case 'ottimo':
++ottimoCount;
break;
case 'DISTINTO': case 'distinto':
++distintoCount;
break;
case 'BUONO': case 'buono':
++buonoCount;
break;
case 'SUFFICIENTE': case 'sufficiente':
++sufficienteCount;
break;
case 'INSUFFICIENTE': case 'insufficiente':
++insufficienteCount;
break;
case '\n': case ' ':
break;
default:
printf("Giudizio non corretto.");
printf(" Inserisci un nuovo giudizio.\n");
break;
}
}
printf("\n I totali per ogni giudizio sono:\n");
printf("OTTIMO: %d\n", ottimoCount);
printf("DISTINTO: %d\n", distintoCount);
printf("BUONO: %d\n", buonoCount);
printf("SUFFICIENTE: %d\n", sufficienteCount);
printf("INSUFFICIENTE: %d\n", insufficienteCount);
return 0;
}
Ultimo aggiornamento 09/09/2022 12:25:14