C - istruzione switch

UN switchconsente di verificare l'uguaglianza di una variabile rispetto a un elenco di valori. Ogni valore è chiamato caso e per ciascuno di essi viene controllata la variabile attivataswitch case.

Sintassi

La sintassi per a switch L'istruzione nel linguaggio di programmazione 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 file switch dichiarazione -

  • Il expression utilizzato in a switch deve avere un tipo integrale o enumerato oppure 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 un break viene raggiunta, lo switch termina e il flusso di controllo salta alla riga successiva dopo l'istruzione switch.

  • Non tutti i casi devono contenere un file break. Se nobreakappare, il flusso di controllo saranno 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. Nobreak è necessario nel caso predefinito.

Diagramma di flusso

Esempio

#include <stdio.h>
 
int main () {

   /* local variable definition */
   char grade = 'B';

   switch(grade) {
      case 'A' :
         printf("Excellent!\n" );
         break;
      case 'B' :
      case 'C' :
         printf("Well done\n" );
         break;
      case 'D' :
         printf("You passed\n" );
         break;
      case 'F' :
         printf("Better try again\n" );
         break;
      default :
         printf("Invalid grade\n" );
   }
   
   printf("Your grade is  %c\n", grade );
 
   return 0;
}

Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:

Well done
Your grade is B