PROGRAMMIAMO
C++ - Sequenze if e switch case

Istruzione if ... else if

Le istruzioni if... else if possono essere concatenate fra loro in sequenza nel seguente modo:

if (voto<=4)
    cout<<"Insufficienza grave!";
else if (voto<6)
    cout<<"Insufficienza!";
else if (voto<=7)
    cout<<"Sufficienza!";
else
    cout<<"Bravo!";


La sequenza di if dev'essere interpretata nel seguente modo:

 

Switch ... case...

Un costrutto simile alla sequenza di if... else if... può anche essere realizzato con l'istruzione switch...case. La sintassi di questa istruzione è la seguente:

switch (variabile intera)
   {
    case 1:
            ...
            istruzioni
            ...
            break;

    case 2:
            ...
            istruzioni
            ...
            break;

    case 3:
            ...
            istruzioni
            ...
            break;
    ....

    default:
           ...
           istruzioni
            ...
           break;
   }

La variabile intera messa fra le parentesi tonde comanda lo switch, cioè, in base al suo valore (1, 2, 3...) il programma decide quali istruzioni dello switch eseguire. Se essa vale 1, per esempio, vengono scritte le istruzioni comprese in case 1 (quelle prima dell'istruzione break che chiude il case).

In pratica lo switch precedente è del tutto equivalente a

if (variabile intera==1)
   {
    ...
    istruzioni
    ...
    }
else if (variabile intera==2)
   {
    ...
    istruzioni
    ...
    }
else if (variabile intera==3)
   {
    ...
    istruzioni
    ...
    }
    ...
else
    {
     ...
     istruzioni
      ...
    }

L'ultimo else corrisponde al caso default finale nello switch (viene eseguito se nessuna delle condizioni precedenti è vera).

Vediamo ora un esempio di uso dell'istruzione switch case prendendo come esempio lo spezzone di programma visto poco fa, che visualizza un messaggio diverso a seconda del voto. Ecco come lo stesso programma potrebbe essere realizzato con uno switch (supponendo che la variabile voto possa solo assumere valori interi)

switch (voto)
   {
    case 1:
    case 2:
    case 3:
    case 4:
       cout<<"Insufficienza grave!";
       break;
    case 5:
       cout<<"Insufficienza!";
       break;
    case 6:
    case 7:
       cout<<"Sufficienza!";
       break;
    case 8:
    case 9:
    case 10:
       cout<<"Bravo!";
       break;
    default:
       cout<<"Voto non valido!";
       break;
   }

Si osservi che i primi 3 case non hanno l'istruzione break finale. Questo significa che, se viene selezionato per esempio il caso 1, l'esecuzione prosegue con le istruzioni successive (quelle del caso 2) e via così fino al caso 4. Questo è utile quando si vogliono raggruppare insieme più casi dello switch (come nell'esempio sopra) o quando uno dei casi condivide una porzione di codice con quello successivo.

 

link precedente - successiva link

Sito realizzato in base al template offerto da

http://www.graphixmania.it