Instruction de commutateur C # (avec des exemples)

Dans cet article, nous allons découvrir les instructions switch en C # et comment les utiliser avec des exemples.

L'instruction Switch peut être utilisée pour remplacer l'instruction if… else if en C #. L'avantage d'utiliser switch over if… else if statement est les codes sembleront beaucoup plus propres et lisibles avec switch.

La syntaxe de l'instruction switch est:

 switch (variable / expression) (case value1: // Instructions exécutées si expression (ou variable) = valeur1 break; case value2: // Instructions exécutées si expression (ou variable) = valeur1 break;……………… par défaut: / / Déclarations exécutées si aucun cas ne correspond) 

L'instruction switch évalue l'expression (ou la variable) et compare sa valeur avec les valeurs (ou expression) de chaque cas (valeur1, valeur2,…). Lorsqu'il trouve la valeur correspondante, les instructions à l'intérieur de ce cas sont exécutées.

Mais, si aucun des cas ci-dessus ne correspond à l'expression, les instructions à l'intérieur du defaultbloc sont exécutées. L'instruction par défaut à la fin du commutateur est similaire au bloc else de l'instruction if else.

Cependant, un problème avec l'instruction switch est que lorsque la valeur correspondante est trouvée, elle exécute toutes les instructions après elle jusqu'à la fin du bloc switch.

Pour éviter cela, nous utilisons une breakdéclaration à la fin de chaque cas. L'instruction break arrête le programme d'exécuter des instructions non correspondantes en mettant fin à l'exécution de l'instruction switch.

Pour en savoir plus sur l'instruction break, visitez l'instruction break C #.

Exemple 1: instruction de commutateur C #

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': Console.WriteLine("Vowel"); break; case 'e': Console.WriteLine("Vowel"); break; case 'i': Console.WriteLine("Vowel"); break; case 'o': Console.WriteLine("Vowel"); break; case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

Lorsque nous exécutons le programme, la sortie sera:

 Entrez un alphabet X Pas une voyelle 

Dans cet exemple, l'utilisateur est invité à entrer un alphabet. L'alphabet est converti en minuscules à l'aide de la ToLower()méthode s'il est en majuscules.

Ensuite, l'instruction switch vérifie si l'alphabet entré par l'utilisateur est l'un des a, e, i, o or u.

Si l'un des cas correspond, Vowelest imprimé sinon le contrôle passe au bloc par défaut et Not a vowelest imprimé en sortie.

Puisque la sortie pour toutes les voyelles est la même, nous pouvons joindre les cas comme suit:

Exemple 2: instruction de commutateur C # avec des cas groupés

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': case 'e': case 'i': case 'o': case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

La sortie des deux programmes est la même. Dans le programme ci-dessus, toutes les voyelles impriment la sortie Vowelet interrompent l'instruction switch.

Bien que l'instruction switch rende le code plus propre que l'instruction if… else if, switch est limité pour fonctionner avec des types de données limités. L'instruction Switch en C # ne fonctionne qu'avec:

  • Types de données primitifs: bool, char et type intégral
  • Types énumérés (énumération)
  • Classe de chaîne
  • Types Nullable des types de données ci-dessus

Exemple 3: programme de calcul simple utilisant l'instruction de commutateur C #

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char op; double first, second, result; Console.Write("Enter first number: "); first = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter second number: "); second = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter operator (+, -, *, /): "); op = (char)Console.Read(); switch(op) ( case '+': result = first + second; Console.WriteLine("(0) + (1) = (2)", first, second, result); break; case '-': result = first - second; Console.WriteLine("(0) - (1) = (2)", first, second, result); break; case '*': result = first * second; Console.WriteLine("(0) * (1) = (2)", first, second, result); break; case '/': result = first / second; Console.WriteLine("(0) / (1) = (2)", first, second, result); break; default: Console.WriteLine("Invalid Operator"); break; ) ) ) ) 

Lorsque nous exécutons le programme, la sortie sera:

 Entrez le premier nombre: -13.11 Entrez le deuxième nombre: 2.41 Entrez l'opérateur (+, -, *, /): * -13.11 * 2.41 = -31.5951 

Le programme ci-dessus prend deux opérandes et un opérateur comme entrée de l'utilisateur et exécute l'opération basée sur l'opérateur.

Les entrées sont prises par l'utilisateur à l'aide de la méthode ReadLine()et Read(). Pour en savoir plus, visitez Entrée et sortie de base C #.

Le programme utilise l'instruction switch case pour la prise de décision. Alternativement, nous pouvons utiliser if-else if ladder pour effectuer la même opération.

Articles intéressants...