C # - Instruction Switch

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 C # est la suivante -

switch(expression) {
   case constant-expression1  :
      statement(s);
      break;
   case constant-expression2  :
   case constant-expression3  :
      statement(s);
      break;
  
   /* 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. Sinonbreak apparaît, puis il déclenchera une erreur de compilation.

  • 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.

Représentation schématique

Exemple

using System;

namespace DecisionMaking {
   class Program {
      static void Main(string[] args) {
         /* local variable definition */
         char grade = 'B';
         
         switch (grade) {
            case 'A':
               Console.WriteLine("Excellent!");
               break;
            case 'B':
            case 'C':
               Console.WriteLine("Well done");
               break;
            case 'D':
               Console.WriteLine("You passed");
               break;
            case 'F':
               Console.WriteLine("Better try again");
               break;
               default:
            Console.WriteLine("Invalid grade");
               break;
         }
         Console.WriteLine("Your grade is  {0}", grade);
         Console.ReadLine();
      }
   }
}

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

Well done
Your grade is B