Istruzione switch C ++

UN switchconsente di verificare l'uguaglianza di una variabile rispetto a un elenco di valori. Ogni valore è chiamato caso e la variabile da attivare viene controllata per ogni caso.

Sintassi

La sintassi per a switch l'istruzione in C ++ è la seguente:

switch(expression) {
   case constant-expression  :
      statement(s);
      break; //optional
   case constant-expression  :
      statement(s);
      break; //optional
  
   // you can have any number of case statements.
   default : //Optional
      statement(s);
}

Le seguenti regole si applicano a un'istruzione switch:

  • Il expression utilizzato in a switch deve avere un tipo integrale o enumerato o essere di un tipo di classe in cui la classe ha una singola funzione di conversione in un tipo integrale o enumerato.

  • È possibile avere un numero qualsiasi di istruzioni case all'interno di uno switch. Ogni caso è seguito dal valore da confrontare e da due punti.

  • Il constant-expression per un caso deve essere lo stesso tipo di dati della variabile nello switch e deve essere una costante o un valore letterale.

  • Quando la variabile da attivare è uguale a un caso, le istruzioni che seguono quel caso verranno eseguite fino a quando a break viene raggiunta la dichiarazione.

  • Quando viene raggiunta un'istruzione break, lo switch termina e il flusso di controllo passa alla riga successiva che segue l'istruzione switch.

  • Non tutti i casi devono contenere una pausa. Se non appare nessuna rottura, il flusso di controllo sarà cadere attraverso i casi successivi fino al raggiungimento di una pausa.

  • UN switch l'istruzione può avere un optional defaultcaso, che deve comparire alla fine dell'interruttore. Il caso predefinito può essere utilizzato per eseguire un'attività quando nessuno dei casi è vero. Non è necessaria alcuna interruzione nel caso predefinito.

Diagramma di flusso

Esempio

#include <iostream>
using namespace std;
 
int main () {
   // local variable declaration:
   char grade = 'D';

   switch(grade) {
      case 'A' :
         cout << "Excellent!" << endl; 
         break;
      case 'B' :
      case 'C' :
         cout << "Well done" << endl;
         break;
      case 'D' :
         cout << "You passed" << endl;
         break;
      case 'F' :
         cout << "Better try again" << endl;
         break;
      default :
         cout << "Invalid grade" << endl;
   }
   cout << "Your grade is " << grade << endl;
 
   return 0;
}

Ciò produrrebbe il seguente risultato:

You passed
Your grade is D