C++ instruction switch

Prise de décision en C++

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:

switch(expression){ case constante-expression : instruction(s); break; // Facultatif case constante-expression : instruction(s); break; // Facultatif // Vous pouvez avoir n'importe quel nombre d'instructions case default : // Facultatif instruction(s); }

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

C++ 中的 switch 语句

Exemple

Exemple

#include <iostream>

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

#include <iostream> using namespace std; int main () { // Déclaration de variable locale char grade = 'D'; switch(grade) { case 'A' : cout << "Génial !" << endl; break; case 'B' : case 'C' : cout << "Bien joué" << endl; break; case 'D' : cout << "Vous avez réussi" << endl; break; case 'F' : cout << "Essayez encore" << endl; break; default : cout << "Score invalide" << endl; } cout << "Votre score est" << grade << endl; return 0; }

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

#include <iostream>

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 3

Prise de décision en C++

autres extensions