Programmation D - Instruction de commutation

UNE switchL'instruction permet à une variable d'être testée pour l'égalité par rapport à une liste de valeurs. Chaque valeur est appelée un cas, et la variable activée est vérifiée pour chaqueswitch case.

Syntaxe

La syntaxe d'un switch L'instruction en langage de programmation D est la suivante -

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); 
}

Les règles suivantes s'appliquent à un switch déclaration -

  • le expression utilisé dans un switch L'instruction doit avoir un type intégral ou énuméré, ou être d'un type de classe dans lequel la classe a une seule fonction de conversion en un type intégral ou énuméré.

  • Vous pouvez avoir n'importe quel nombre d'instructions case dans un commutateur. Chaque cas est suivi de la valeur à comparer et d'un signe deux-points.

  • le constant-expression pour un cas doit être du même type de données que la variable dans le commutateur, et ce doit être une constante ou un littéral.

  • Lorsque la variable activée est égale à un cas, les instructions qui suivent ce cas s'exécutent jusqu'à ce qu'un break déclaration est atteinte.

  • Lorsqu'un break est atteinte, le commutateur se termine et le flux de contrôle passe à la ligne suivante après l'instruction switch.

  • Tous les cas ne doivent pas nécessairement contenir break. Sinonbreakapparaît, le flux de contrôle passe aux cas suivants jusqu'à ce qu'une interruption soit atteinte.

  • UNE switch l'instruction peut avoir une option defaultcas, qui doit apparaître à la fin du commutateur. Le cas par défaut peut être utilisé pour exécuter une tâche lorsque aucun des cas n'est vrai. Nonbreakest nécessaire dans le cas par défaut .

Représentation schématique

Exemple

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; 
}

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

Well done 
Your grade is B