C++ instruction switch
En C++, l'instruction switch est utilisée pour exécuter différents blocs de code en fonction de différentes conditions. Elle est souvent utilisée pour remplacer une série d'instructions if-else, ce qui rend le code plus clair et plus facile à lire.
aswitchL'instruction permet de tester l'égalité d'une variable par rapport à plusieurs valeurs. Chaque valeur est appelée un case, et la variable testée est testée par rapport à chaqueswitch caseEffectuer une vérification.
Syntaxe
En C++, voici la syntaxe de l'instructionswitch:
switchL'instruction doit respecter les règles ci-dessous :
- switchdans l'instruction, l'expressiondoit être de type entier ou énumération, ou un type classe qui possède une seule fonction de conversion le convertissant en un type entier ou énumération.
- Un switch peut contenir n'importe quel nombre d'instructions case. Chaque case est suivie d'une valeur à comparer et d'un deux-points.
- de l'instruction caseconstant-expressiondoit avoir le même type de données que la variable dans le switch, et doit être une constante ou un littéral.
- Lorsque la variable testée est égale à la constante dans le case, les instructions suivant le case seront exécutées jusqu'à ce qu'unebreakinstruction soit rencontrée.
- Lorsqu'unebreakinstruction est rencontrée, le switch se termine, et le flux de contrôle saute à la ligne suivante après l'instruction switch.
- Il n'est pas nécessaire que chaque case incluebreak. Si l'instruction case ne contient pasbreak, le flux de contrôle vareprendreles cas suivants, jusqu'à ce qu'un break soit rencontré.
- aswitchL'instruction peut avoir un casdefaultfacultatif, apparaissant à la fin du switch. Le cas par défaut peut être utilisé pour exécuter une tâche lorsque aucun des cas ci-dessus n'est vrai. Dans le cas par défaut, l'instructionbreakn'est pas requise.
Organigramme
Exemple
Exemple
int main() {
int day = 4;
switch (day) {
case 1:
std::cout << "Monday" << std::endl;
break;
case 2:
std::cout << "Tuesday" << std::endl;
break;
case 3:
std::cout << "Wednesday" << std::endl;
break;
case 4:
std::cout << "jeudi" << std::endl;
break;
case 5:
std::cout << "vendredi" << std::endl;
break;
case 6:
std::cout << "samedi" << std::endl;
break;
case 7:
std::cout << "dimanche" << std::endl;
break;
default:
std::cout << "Jour invalide" << std::endl;
}
return 0;
}
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Thursday
Le type char dans les instructions switch :
Exemple 2
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
您通过了 您的成绩是 D
Notes :
breakInstruction :chaquecaseà la fin de l'instructionbreakL'instruction est nécessaire pour sortir deswitchinstruction. Si elle est manquantebreak, le programme continuera d'exécuter la suivantecase, c'est ce qu'on appelle "fall-through".defaultInstruction :defaultL'instruction est facultative, mais généralement dans tous les cascaselorsqu'aucun d'entre eux ne correspond, elle est utilisée pour gérer tous les cas non listés.- Type d'expression :
switchL'expression est généralement de type entier ou énumération ; les types à virgule flottante et les types chaîne ne sont pas possibles.
Parfois, nous pouvons utiliser intentionnellement le fall-through. Dans le code suivant, si number vaut 2 ou 3, le même bloc de code sera exécuté.
Exemple
int main() {
int number = 2;
switch (number) {
case 1:
std::cout << "Le nombre est 1" << std::endl;
break;
case 2:
case 3:
std::cout << "Le nombre est 2 ou 3" << std::endl;
break;
default:
std::cout << "Le nombre n'est pas 1, 2 ou 3" << std::endl;
}
return 0;
}
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Number is 2 or 3autres extensions