Maison  >  Article  >  développement back-end  >  Explication détaillée de l'utilisation du cas de commutation en langage C

Explication détaillée de l'utilisation du cas de commutation en langage C

藏色散人
藏色散人original
2020-02-10 10:38:0925377parcourir

Explication détaillée de l'utilisation du cas de commutation en langage C

Explication détaillée de l'utilisation du boîtier de commutation en langage C

Switch signifie "switch", c'est aussi un " choix" ", mais son utilisation est très simple. switch est une instruction de sélection multibranche. Pour faire simple, plusieurs branches sont plusieurs si.

Apprentissage recommandé : Tutoriel vidéo sur le langage C

Fonctionnellement parlant, changez d'instructions et les instructions if peuvent complètement se remplacer. Mais du point de vue de la programmation, ils ont chacun leurs propres caractéristiques, on ne peut donc pas dire pour l'instant que l'un puisse remplacer complètement l'autre.

Lorsqu'il y a peu de if imbriqués (au maximum trois), il sera plus simple d'écrire un programme en utilisant if. Cependant, lorsque de nombreuses branches sont sélectionnées, il y aura de nombreux niveaux d'instructions if imbriquées, ce qui entraînera un programme long et une lisibilité réduite. Par conséquent, le langage C fournit des instructions switch pour gérer plusieurs sélections de branches. Donc, on peut dire que if et switch ont une division claire du travail. Dans de nombreux grands projets, des situations de sélection multi-branches sont souvent rencontrées, c'est pourquoi les instructions switch sont encore utilisées assez souvent.

La forme générale de switch est la suivante :

switch (表达式)
{
    case 常量表达式1:    语句1
    case 常量表达式2:    语句2
       ┇
    case 常量表达式n:    语句n
    default:        语句n+1
}

Explication :

1) L'"expression" entre parenthèses après switch doit être de type entier. C'est-à-dire qu'il peut s'agir d'une variable de type int, d'une variable de type char, ou directement d'une constante entière ou caractère, voire d'un nombre négatif. Mais il ne doit pas s'agir d'un nombre réel. Les variables de type flottant, les variables de type double et les constantes décimales ne sont pas autorisées. Ce sont toutes des erreurs de syntaxe.

2) Le cas et la valeur par défaut sous le commutateur doivent être entourés d'une paire d'accolades {}.

3) Lorsque la valeur de "l'expression" entre parenthèses après le switch est égale à la valeur de "l'expression constante" après un cas, l'instruction suivant le cas sera exécutée. Après avoir exécuté l'instruction suivant un cas, le contrôle de flux est transféré au cas suivant pour poursuivre l'exécution. Si vous souhaitez uniquement exécuter cette instruction case et ne souhaitez pas exécuter d'autres cas, vous devez alors ajouter break après cette instruction case pour sortir de l'instruction switch.

Permettez-moi de réitérer : switch est une instruction "select", pas une instruction "loop". De nombreux novices pensent que break est une instruction de boucle lorsqu'ils la voient, car break nous donne généralement l'impression de sortir d'une "boucle", mais break a une autre utilité, qui est de sortir d'un switch.

4) Si les valeurs des expressions constantes dans tous les cas ne sont pas égales à la valeur de "expression" entre parenthèses après le changement, l'instruction après défaut sera exécutée par défaut signifie "par défaut. ". Si default est la dernière instruction, il n'est pas nécessaire d'ajouter break après, car comme il s'agit de la dernière instruction, switch se fermera naturellement après l'exécution.

5) La valeur de "l'expression constante" derrière chaque cas doit être différente les unes des autres, sinon il y aura des conflits les uns avec les autres, et cette écriture provoquera des erreurs grammaticales.

6) "L'expression constante de cas" sert uniquement d'étiquette de déclaration et n'est pas utilisée pour le jugement. Lors de l'exécution de l'instruction switch, l'étiquette d'entrée correspondante est trouvée en fonction de la valeur de l'expression derrière le commutateur, et l'exécution commence à partir de cette étiquette sans autre jugement.

7) L'ordre d'apparition de chaque cas et défaut n'affecte pas le résultat de l'exécution. Mais du point de vue de la lecture, il est préférable d’écrire par ordre alphabétique ou numérique.

8) Bien sûr, vous pouvez aussi vous passer de l'instruction par défaut, tout comme if...else sans l'instruction else à la fin. Mais il vaut mieux l’ajouter, on ne peut rien écrire après. Cela peut empêcher d'autres personnes de penser à tort que vous avez oublié d'effectuer le traitement par défaut et peut rappeler aux autres que le changement est terminé.

Mais il convient de noter que vous ne pouvez rien écrire après default, mais les deux points et les points-virgules suivants ne doivent pas être omis. S'ils sont omis, c'est une erreur grammaticale. De nombreux débutants peuvent facilement faire des erreurs ici, en oubliant un point-virgule ou un deux-points, alors soyez prudent !

Laissez-moi écrire un programme pour vous et examinons-le.

# include <stdio.h>
int main(void)
{
    int val;  //variable的缩写, “变量”的意思
    printf("请输入您想去的楼层:");
    scanf("%d", &val);
    switch (val)
    {
        case 1:
            printf("1层开!\n");
            break;
        case 2:
            printf("2层开!\n");
            break;
        case 3:
            printf("3层开!\n");
            break;
        default:
            printf("该层不存在, 请重新输入\n");
    }
    return 0;
}

Le dernier "Ce calque n'existe pas, veuillez ressaisir" dans ce programme ne fonctionne pas maintenant. Cela devra être implémenté à l'aide de boucles lors de l'apprentissage des instructions de boucle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn