switch…case in C (Switch Statement in C) avec exemples
Qu'est-ce que l'instruction Switch en C ?
Instruction Switch en C teste la valeur d'une variable et la compare à plusieurs observations. Une fois la correspondance de cas trouvée, un bloc d'instructions associé à ce cas particulier est exécuté.
Chaque cas dans un bloc d'un commutateur a un nom/numéro différent qui est appelé un identifiant. La valeur fournie par l'utilisateur est comparée à tous les cas à l'intérieur du bloc de commutation jusqu'à ce que la correspondance soit trouvée.
Si une correspondance de casse n'est PAS trouvée, l'instruction par défaut est exécutée et le contrôle sort du bloc de commutation.
Dans ce tutoriel, vous apprendrez-
- Qu'est-ce que l'instruction Switch en C ?
- Changer la syntaxe de casse
- Organigramme de l'instruction de commutation
- Exemple de changement de casse en C
- Commutateur imbriqué en C
- Pourquoi avons-nous besoin d'une coque Switch ?
- Règles pour l'instruction switch
Changer la syntaxe de la casse
Une syntaxe générale de la façon dont switch-case est implémenté dans un programme "C" est la suivante :
switch( expression ) { case value-1: Block-1; Break; case value-2: Block-2; Break; case value-n: Block-n; Break; default: Block-1; Break; } Statement-x;
- L'expression peut être une expression entière ou une expression de caractère.
- Valeur-1, 2, n sont des étiquettes de cas qui sont utilisées pour identifier chaque cas individuellement. N'oubliez pas que les étiquettes de cas ne doivent pas être les mêmes car cela peut créer un problème lors de l'exécution d'un programme. Supposons que nous ayons deux cas avec la même étiquette que "1". Ensuite, lors de l'exécution du programme, le cas qui apparaît en premier sera exécuté même si vous souhaitez que le programme exécute un deuxième cas. Cela crée des problèmes dans le programme et ne fournit pas la sortie souhaitée.
- Les étiquettes de casse se terminent toujours par deux-points ( :). Chacun de ces cas est associé à un bloc.
- Un bloc n'est rien d'autre que plusieurs instructions regroupées pour un cas particulier.
- Chaque fois que le commutateur est exécuté, la valeur de test-expression est comparée à tous les cas que nous avons définis à l'intérieur du commutateur. Supposons que l'expression de test contienne la valeur 4. Cette valeur est comparée à tous les cas jusqu'au cas dont l'étiquette quatre est trouvée dans le programme. Dès qu'un cas est trouvé, le bloc d'instructions associé à ce cas particulier est exécuté et le contrôle sort du commutateur.
- Le mot-clé break dans chaque cas indique la fin d'un cas particulier. Si nous ne mettons pas la pause dans chaque cas, même si le cas spécifique est exécuté, le commutateur en C continuera à exécuter tous les cas jusqu'à ce que la fin soit atteinte. Cela ne devrait pas arriver; par conséquent, nous devons toujours mettre le mot-clé break dans chaque cas. Break mettra fin au cas une fois qu'il est exécuté et le contrôle tombera du commutateur.
- Le cas par défaut est facultatif. Chaque fois que la valeur de test-expression ne correspond à aucun des cas à l'intérieur du commutateur, la valeur par défaut sera exécutée. Sinon, il n'est pas nécessaire d'écrire default dans le switch.
- Une fois le commutateur exécuté, le contrôle passera à l'instruction-x et l'exécution d'un programme se poursuivra.
Organigramme de l'instruction de commutation
Le diagramme suivant illustre comment un cas est sélectionné dans le cas du commutateur :

Exemple de changement de casse en C
Le programme suivant illustre l'utilisation de switch :
#include <stdio.h> int main() { int num = 8; switch (num) { case 7: printf("Value is 7"); break; case 8: printf("Value is 8"); break; case 9: printf("Value is 9"); break; default: printf("Out of range"); break; } return 0; }
Sortie :
Value is 8
- Dans le programme donné, nous avons expliqué avoir initialisé une variable num avec la valeur 8.
- Une construction de commutateur est utilisée pour comparer la valeur stockée dans la variable num et exécuter le bloc d'instructions associé au cas correspondant.
- Dans ce programme, puisque la valeur stockée dans la variable num est huit, un commutateur exécutera le cas dont l'étiquette de cas est 8. Après avoir exécuté le cas, le contrôle tombera hors du commutateur et le programme se terminera avec le résultat réussi en imprimant la valeur sur l'écran de sortie.
Essayez de changer la valeur de la variable num et notez le changement dans la sortie.
Par exemple, on considère le programme suivant qui par défaut :
#include <stdio.h> int main() { int language = 10; switch (language) { case 1: printf("C#\n"); break; case 2: printf("C\n"); break; case 3: printf("C++\n"); break; default: printf("Other programming language\n");}}
Sortie :
Other programming language
Lorsque vous travaillez avec le changement de casse en C, vous regroupez plusieurs cas avec des étiquettes uniques. Vous devez introduire une instruction break dans chaque cas pour créer un branchement à la fin d'une instruction switch.
Le cas par défaut facultatif s'exécute lorsqu'aucune autre correspondance n'est établie.
Nous considérons l'instruction switch suivante :
#include <stdio.h> int main() { int number=5; switch (number) { case 1: case 2: case 3: printf("One, Two, or Three.\n"); break; case 4: case 5: case 6: printf("Four, Five, or Six.\n"); break; default: printf("Greater than Six.\n");}}
Sortie :
Four, Five, or Six.
Commutateur imbriqué en C
En C, nous pouvons avoir un interrupteur interne intégré dans un interrupteur externe. De plus, les constantes de casse du commutateur interne et externe peuvent avoir des valeurs communes et sans aucun conflit.
Nous considérons le programme suivant que l'utilisateur doit taper son propre ID, si l'ID est valide il lui demandera d'entrer son mot de passe, si le mot de passe est correct le programme imprimera le nom de l'utilisateur, sinon, le programme imprimera Incorrect Mot de passe et si l'ID n'existe pas, le programme imprimera ID incorrect
#include <stdio.h> int main() { int ID = 500; int password = 000; printf("Plese Enter Your ID:\n "); scanf("%d", & ID); switch (ID) { case 500: printf("Enter your password:\n "); scanf("%d", & password); switch (password) { case 000: printf("Welcome Dear Programmer\n"); break; default: printf("incorrect password"); break; } break; default: printf("incorrect ID"); break; } }
SORTIE :
Plese Enter Your ID: 500 Enter your password: 000 Welcome Dear Programmer
- Dans le programme donné, nous avons expliqué deux variables initialisées :ID et mot de passe
- Une construction de commutateur externe est utilisée pour comparer la valeur entrée dans la variable ID. Il exécute le bloc d'instructions associé au cas correspondant (quand ID==500).
- Si l'instruction de bloc est exécutée avec la casse correspondante, un commutateur interne est utilisé pour comparer les valeurs saisies dans la variable password et exécuter les instructions liées à la casse correspondante (lorsque password==000).
- Sinon, le changement de casse déclenchera la casse par défaut et imprimera le texte approprié concernant le plan du programme.
Pourquoi avons-nous besoin d'un étui Switch ?
Il y a un problème potentiel avec l'instruction if-else qui est que la complexité du programme augmente chaque fois que le nombre de chemins alternatifs augmente. Si vous utilisez plusieurs constructions if-else dans le programme, un programme peut devenir difficile à lire et à comprendre. Parfois, cela peut même confondre le développeur qui a lui-même écrit le programme.
La solution à ce problème est l'instruction switch.
Règles pour l'instruction switch
- Une expression doit toujours s'exécuter sur un résultat.
- Les étiquettes de cas doivent être constantes et uniques.
- Les libellés de casse doivent se terminer par deux-points ( :).
- Un mot-clé de rupture doit être présent dans chaque cas.
- Il ne peut y avoir qu'un seul libellé par défaut.
- Nous pouvons imbriquer plusieurs instructions switch.
Résumé
- Un commutateur est une construction de prise de décision en "C".
- Un commutateur est utilisé dans un programme impliquant plusieurs décisions.
- Un commutateur doit contenir une expression de test exécutable.
- Chaque cas doit inclure un mot-clé de rupture.
- Le libellé de cas doit être constant et unique.
- La valeur par défaut est facultative.
- Plusieurs instructions switch peuvent être imbriquées les unes dans les autres.
Langue C
- Instruction de commutateur C #
- Boucle do…while C++ avec exemples
- Instruction C++ Switch Case avec EXAMPLE
- Pointeurs C++ avec exemples
- Surcharge d'opérateur C++ avec des exemples
- Fonctions C++ avec exemples de programmes
- Tutoriel sur les collections C # avec des exemples
- Instruction Python Print() :comment imprimer avec des exemples
- Python String count() avec des EXEMPLES