L4G >  Case  

Afficher tout Masquer tout

"case" permet de réaliser une structure de contrôle alternative en fonction de la valeur d'une expression donnée.

 

Syntaxe

   Caseexpr_choix
        {  When  expr_v { , expr_v } [ : ]
                                       instructions exécutées si
                   [ instructions ]    l'expression expr_choix prend
                                       l'une des valeurs de la liste
                                       des expressions expr_v.
        }
        [  When  Default [ : ]
                                       instructions exécutées si
                   [ instructions ]    l'expression expr_choix
                                       n'a pris aucune des valeurs
                                       des expressions expr_v.
        ]
   Endcase

 

Paramètres

Elément

Description

Restrictions

expr_choix

Expression dont la valeur permet de choisir une alternative.

Aucune.

expr_v

Expression dont la valeur est comparée à celle de expr_choix.

Du même type que expr_choix.

 

Exemples

   # Selon la valeur de CHOIX, on fera une action particulière
 # Si choix vaut "R", rien n'est fait
    Case toupper(CHOIX)
           When "A","E" :  Gosub EFFACEMENT
           When "Q","F" :  Goto FIN
           When "R"
           When "M"     :  Gosub MODIFICATION
           When Default
                   Gosub AIDE
   Endcase
   # Alternative sur l'expression date$ qui est comparée à
   # d'autres variables ou à des expressions complexes
   #
    Case date$
           When [29/05/1959]
                   Infbox "C'est ma date de naissance"
                   Gosub ANNIVERSAIRE
           When [18/06/1944],[08/05/1945],[11/11/1918]
                   Infbox "C'est une date historique"
                   Gosub COMMEMORATION
           When DATE_LIMITE+DELAI_GRACE
                   Infbox "Il faut payer les impôts avant ce soir !"
                   Gosub PERCEPTEUR
           When Default
                   Infbox "Rien de particulier aujourd'hui"
   Endcase

 

Description

Case permet de réaliser des alternatives au sein d'un traitement, et ce en fonction de la valeur d'une expression qui peut être comparée à des listes de valeurs.

 

Remarques

Au plus une alternative est exécutée (un "case" équivaut à une structure If ... Elsif ... Else ... Endif). En l'absence de clause When Default, et si aucune valeur ne correspond à l'expression, aucune instruction délimitée par le "case" ne sera exécutée.

Aucune instruction ne peut être placée entre le "case" et le premier "when" (pas même un commentaire).

Lorsqu'un "when" n'est suivi d'aucune instruction avant le "when" suivant, cela veut dire qu'il n'y a pas d'action à effectuer, contrairement à certains langages tels le C. Pour exécuter un même choix pour une série de valeurs, il faut mettre cette série dans une seule liste précédée d'un "when".

 

Erreurs associées

Erreur

Description

ERMODE (10)

L'expression expr_v est d'un type non comparable à expr_choix.

 

Mots-clés associés

IF