Partager via


instruction switch (c)

switch et les opérations complexes conditionnelles de contrôle d'aide d'instructions d' événement et de branche.Transfère le contrôle d'instruction d' switch à une instruction au sein de son corps.

Syntaxe

  • sélection-instruction:
    instruction de**)d'expression decommutateur (**

  • étiqueter-instruction:
    instruction de Numéro de téléphone : d'expression constante d' événement

    instruction devaleur par défaut :

Le contrôle passe à l'instruction del'expression constante * d' événementcorrespond à la valeurde l'expression ***)**de commutateur (.L'instruction d' switch peut inclure un certain nombre d'instances d' événement , mais aucune constante de deux cas dans la même instruction d' switch ne peut avoir la même valeur.L'exécution du corps d'instruction commence à l'instruction sélectionnée et continue jusqu'à la fin de le corps ou qu'un contrôle de transmission d'instruction de saut extérieur de le corps.

L'utilisation de l'instruction d' switch se présente généralement à ceci :

switch ( expression )

{

   déclarations 

   .

   .

   .

   *expression constante *Numéro de téléphone : d'événement 

      instructions exécutées si l'expression est égal à 

      valeur de cette expression constante 

      .

      .

      .

      saut ; 

   valeur par défaut :

      instructions exécutées si l'expression n'est pas égal à 

      en convertissent l'expression constante 

}

Vous pouvez utiliser l'instruction de saut pour terminer le traitement d'un cas particulier dans l'instruction d' switch et pour créer une branche à la fin de l'instruction d' switch .Sans saut, le programme continue au cas suivant, exécution d'instructions jusqu'à saut ou la fin de l'instruction est atteinte.Dans certains cas, cette suite peut être souhaitable.

l'instruction de valeur par défaut est exécutée si aucune*expression constante d'*événementn'est égale à la valeur de l'*expression ***)**de commutateur (.Si l'instruction de valeur par défaut est omis, et aucune correspondance d' événement n'est trouvée, aucune des instructions dans le corps d' switch n'est effectuée.Il peut y avoir au plus une instruction de valeur par défaut .L'instruction de valeur par défaut n'a pas besoin est-à-dire à la fin ; elle peut apparaître n'importe où dans le corps de l'instruction d' switch .Un nom d' événement ou de valeur par défaut peuvent seulement apparaître dans une instruction d' switch .

le type de l'*expression d'*switchet d'expression constante d'événementdoit être intégral.La valeur de chaqueexpression constante d' événementdoit être unique dans le corps d'instruction.

Les noms d' événement et de valeur par défaut du corps d'instruction d' switch sont significatifs uniquement dans le test initial qui détermine où l'exécution démarre au corps d'instruction.Les instructions switch peuvent être imbriquées.Toutes les variables statiques sont initialisées avant d'exécuter dans le switch des instructions.

[!REMARQUE]

Les déclarations peuvent apparaître au début de l'instruction composée forme le corps d' switch , mais les initialisations incluses dans les déclarations ne sont pas exécutées.Transfère le contrôle d'instruction d' switch directement à une instruction exécutable dans le corps, sautant les lignes qui contiennent des initialisations.

Les exemples suivants illustrent les instructions d' switch :

switch( c ) 
{
    case 'A':
        capa++;
    case 'a':
        lettera++;
    default :
        total++;
}

Les trois instructions dans le corps d' switch dans cet exemple est exécuté si c est égal à 'A' étant donné qu'une instruction de saut n'apparaît pas avant que le cas suivant.Le contrôle d'exécution est transféré vers la première instruction (capa++;) et continue dans l'ordre à travers le reste du corps.si c est égal à 'a', lettera et total sont incrémentés.Uniquement total est incrémenté si c n'est pas égal à 'A' ou à 'a'.

switch( i ) 
{
    case -1:
        n++;
        break;
    case 0 :
        z++;
        break;
    case 1 :
        p++;
        break;
}

dans cet exemple, une instruction de saut suit chaque instruction du corps d' switch .L'instruction de saut force une sortie du corps d'instruction après qu'une instruction ne soit exécutée.Si i est égal à (1, seule n est incrémenté.saut suivant l'instruction n++; provoque le contrôle d'exécution à exécuter hors de le corps d'instruction, sautant les instructions restantes.De même, si i est égal à 0, seule z est incrémenté ; si i est égal à 1, seule p est incrémenté.L'instruction de saut de définitive n'est pas strictement nécessaire, étant donné que le contrôle passe en dehors de le corps à la fin de l'instruction composée, mais il est inclus pour des raisons de sécurité.

Une instruction unique peut contenir plusieurs noms d' événement , comme dans l'exemple suivant :

case 'a' :
case 'b' :
case 'c' :
case 'd' :
case 'e' :
case 'f' :  hexcvt(c);

Dans cet exemple, si l'expression constante égale un caractère alphabétique entre 'a' et 'f', la fonction d' hexcvt est appelée.

Spécifique à Microsoft

Microsoft C ne limite pas le nombre de valeurs de cas dans une instruction d' switch .Le nombre est limité uniquement par la mémoire disponible.C ANSI requiert au moins 257 étiquettes case est autorisé dans une instruction d' switch .

la valeur par défaut pour Microsoft C est que les extensions Microsoft sont activées.Utilisez l'option du compilateur /Za de désactiver ces extensions.

détail de FIN Microsoft

Voir aussi

Référence

instruction switch (C++)