Maîtriser l'instruction Switch C# : Syntaxe, exemples et bonnes pratiques
Instruction Switch C#
Découvrez comment remplacer les chaînes if-else complexes par une instruction switch propre et lisible en C# — complète avec des exemples pratiques.
Les instructions switch simplifient la prise de décision en évaluant une seule expression et en exécutant le bloc case correspondant. Comparé à une longue échelle if-else, la syntaxe switch est plus concise et plus facile à maintenir.
La structure de base est :
switch (variableOuExpression) {
case valeur1:
// Code pour valeur1
break;
case valeur2:
// Code pour valeur2
break;
// …
default:
// Code quand aucun case ne correspond
}
Lorsque l'expression correspond à un case, le bloc correspondant s'exécute jusqu'à ce qu'un break termine le switch. Si aucun case ne correspond, le bloc default s'exécute, miroir d'une clause else.
Sans break, l'exécution « traverserait » et continuerait dans les cases suivantes — menant souvent à des bugs. Pour une analyse plus approfondie de l'instruction break C#, consultez la documentation officielle.
Exemple 1 : Identification des voyelles
using System;
namespace Conditional {
class SwitchCase {
public static void Main(string[] args) {
char ch;
Console.WriteLine("Entrez une lettre");
ch = Convert.ToChar(Console.ReadLine());
switch(Char.ToLower(ch)) {
case 'a':
Console.WriteLine("Voyelle");
break;
case 'e':
Console.WriteLine("Voyelle");
break;
case 'i':
Console.WriteLine("Voyelle");
break;
case 'o':
Console.WriteLine("Voyelle");
break;
case 'u':
Console.WriteLine("Voyelle");
break;
default:
Console.WriteLine("Pas une voyelle");
break;
}
}
}
}
L'exécution du programme produit :
Entrez une lettre X Pas une voyelle
Ici, la saisie de l'utilisateur est convertie en minuscules et comparée aux cas de voyelles. Si aucune voyelle ne correspond, le message par défaut est affiché.
Puisque tous les cas de voyelles effectuent la même action, ils peuvent être groupés :
Exemple 2 : Cas groupés
using System;
namespace Conditional {
class SwitchCase {
public static void Main(string[] args) {
char ch;
Console.WriteLine("Entrez une lettre");
ch = Convert.ToChar(Console.ReadLine());
switch(Char.ToLower(ch)) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
Console.WriteLine("Voyelle");
break;
default:
Console.WriteLine("Pas une voyelle");
break;
}
}
}
}
La sortie reste identique, mais le code est nettement plus propre.
Les instructions switch sont limitées à des types de données spécifiques :
- Types primitifs (bool, char, types intégraux)
- Énumérations (enum)
- String
- Versions nullable des types ci-dessus
Exemple 3 : Calculatrice simple
using System;
namespace Conditional {
class SwitchCase {
public static void Main(string[] args) {
char op;
double first, second, result;
Console.Write("Entrez le premier nombre : ");
first = Convert.ToDouble(Console.ReadLine());
Console.Write("Entrez le second nombre : ");
second = Convert.ToDouble(Console.ReadLine());
Console.Write("Entrez l'opérateur (+, -, *, /) : ");
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("Opérateur invalide");
break;
}
}
}
}
Exemple d'exécution :
Entrez le premier nombre : -13.11 Entrez le second nombre : 2.41 Entrez l'opérateur (+, -, *, /) : * -13.11 * 2.41 = -31.5951
Cette calculatrice accepte deux opérandes et un opérateur, puis effectue l'opération demandée en utilisant un switch. Les entrées sont lues via ReadLine() et Read() ; pour plus d'informations sur les entrées/sorties, voir Entrées et sorties de base C#.
Bien qu'une chaîne if-else puisse remplacer le switch, ce dernier offre une intention plus claire et une exécution plus rapide pour les valeurs discrètes.
Langue C
- Circuit avec interrupteur : guide pratique des circuits électriques de base
- Expérience sur la diode de roue libre : Suppression du retour inductif avec une lampe néon
- Comprendre les interrupteurs électriques : types, fonctions et applications
- Élimination des rebonds de contacts dans les interrupteurs mécaniques
- Instruction Break C# : Comment et quand l'utiliser
- Maîtriser l'instruction Continue C# : Comment ignorer efficacement les itérations de boucle
- Maîtriser l'instruction pass en Python : Guide pratique
- Maîtriser le switch-case en C++ : Syntaxe, utilisation et exemples pratiques
- Maîtriser la syntaxe de base du C : Jetons, structure et points-virgules