Programmazione D - 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 D è 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 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 vengono eseguite finché 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 passa ai casi successivi fino a quando non viene raggiunta una pausa.

  • UN switch l'istruzione può avere un optional defaultcaso, che deve apparire 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

import std.stdio;
 
int main () { 
   /* local variable definition */ 
   char grade = 'B';
   switch(grade) { 
      case 'A' : 
         writefln("Excellent!" ); 
         break; 
      case 'B' : 
      case 'C' : 
         writefln("Well done" ); 
         break; 
      case 'D' : 
         writefln("You passed" ); 
         break; 
      case 'F' : 
         writefln("Better try again" ); 
         break; 
      default : 
         writefln("Invalid grade" ); 
   } 
   writefln("Your grade is %c", grade ); 
  
   return 0; 
}

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

Well done 
Your grade is B