Liste di Valori con Switch in C/C++

Questa volta affrontiamo una istruzione che ci consente di gestire le liste di valori, immaginiamo di avere una serie di valori a cui ad ogni testo equuivale un valore numerico, quello che poi succede nei combo ( caselle combinate ). Prendiamo ad esempio gli animali:

  1. Leone
  2. Giraffa
  3. Ippopotamo
  4. Lupo
  5. Leopardo
  6. Cane
  7. Gatto

Con le istruzioni che abbiamo fatto fino ad ora, per richiedere l’animale giusto dobbiamo creare una lista di if e else if:

#include <stdio.h>
int main(int argc, char* argv[])
{
   int k = 2;

   if (k == 1)
      printf("Hai scelto il leone");
  else if (k == 2)
      printf("Hai scelto la giraffa");
  else if (k == 3)
      printf("Hai scelto l'ippopotamo");
  else if (k == 4)
      printf("Hai scelto il lupo");
  else if (k == 5)
      printf("Hai scelto il leopardo");
  else if (k == 6)
      printf("Hai scelto il cane");
  else if (k == 7)
      printf("Hai scelto il gatto");
  else
      printf("Non hai scelto nulla");

   scanf_s("Premere un tasto per terminare il programma");

  return 0;
}

Come si può notare è una serie di if ed else if. Invece di trattare le liste in questa maniera si utilizza l’istruzione switch che è fatta apposta per le serie di valori, non solo per la chiarezza del codice, ma soprattutto per la velocità di esecuzione, difatti con gli if il programma deve fare per tutti i casi un confronto e più la lista si allunga e più la velocità di esecuzione diminuisce, invece con lo switch il programma va immediatamente sul caso giusto e questo lo potete notare eseguendo il debug del programma:

...
int k = 2;

switch (k)
{
case 1:
   printf("Hai scelto il leone");
   break;
case 2:
   printf("Hai scelto la giraffa");
   break;
case 3:
   printf("Hai scelto l'ippopotamo");
   break;
case 4:
   printf("Hai scelto il lupo");
   break;
case 5:
   printf("Hai scelto il leopardo");
   break;
case 6:
   printf("Hai scelto il cane");
   break;
case 7:
   printf("Hai scelto il gatto");
   break;
default:
   printf("Non hai scelto nulla");
}

scanf_s("Premere un tasto per terminare il programma");

return 0;
...

Come si vede è doveroso inserire un break tra un case e l’altro altrimenti il programma continua senza uscire e se ad esempio togliessimo il break dopo il case 3, anche se scelgo 3 il programma va su 4 perchè non lo abbiamo arrestato e questo è importante per avere case espansi come in questo caso:

...
case 2:
case 3:
   printf("Hai scelto l'ippopotamo");
   break;
case 4:
   printf("Hai scelto il lupo");
   break;
...

In questo caso l’ippopotamo viene scelto sia con 2 che 3 e qui si nota la grande versatilità di questo linguaggio. Tutti gli altri casi è possibile selezionarli con default come potete notare dall’esempio.
Con questa lezione termino il corso base per imparare la programmazione in C/C++, ora sarete in grado di studiare il resto da soli, magari seguendo altri articoli su questo linguaggio su questo blog.

<< Lezione PrecedenteInizio Corso – Lezione Successiva >>

Informazioni su Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.
Questa voce è stata pubblicata in VC/C++. Contrassegna il permalink.