Instruction de commutateur C #
Instruction de commutateur C#
Dans cet article, nous allons découvrir l'instruction 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 est que les codes seront beaucoup plus propres et lisibles avec switch.
La syntaxe de l'instruction switch est :
switch (variable/expression) { case value1: // Statements executed if expression(or variable) = value1 break; case value2: // Statements executed if expression(or variable) = value1 break; ... ... ... ... ... ... default: // Statements executed if no case matches }
L'instruction switch évalue l'expression (ou variable ) et comparez sa valeur avec les valeurs (ou expression) de chaque cas (value1 , 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 de default
bloc est exécuté. L'instruction par défaut à la fin de switch est similaire au bloc else dans 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 qui la suivent jusqu'à la fin du bloc switch.
Pour éviter cela, nous utilisons break
déclaration à la fin de chaque cas. L'instruction break empêche 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, consultez 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 :
Enter an alphabet X Not a vowel
Dans cet exemple, l'utilisateur est invité à entrer un alphabet. L'alphabet est converti en minuscules en utilisant ToLower()
méthode si elle est en majuscule.
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, Vowel
est imprimé sinon le contrôle va au bloc par défaut et Not a vowel
est imprimé en sortie.
Étant donné que la sortie pour toutes les voyelles est la même, nous pouvons joindre les cas comme :
Exemple 2 :Instruction switch C# avec 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 Vowel
et rompt avec l'instruction switch.
Bien que l'instruction switch rende le code plus propre que l'instruction if...else if, switch est restreint à 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 (Enum)
- Classe de chaîne
- Types Nullable des types de données ci-dessus
Exemple 3 :programme de calcul simple utilisant l'instruction C# switch
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 :
Enter first number: -13.11 Enter second number: 2.41 Enter operator (+, -, *, /): * -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 effectue l'opération en fonction de l'opérateur.
Les entrées sont prises de l'utilisateur en utilisant le ReadLine()
et Read()
méthode. Pour en savoir plus, consultez 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.
Langue C