Syntaxe
Déclare une suite de constantes numérotées, une par ligne. ENUMERATIONBINARY double la valeur à chaque ligne, pour des drapeaux.
ENUMERATION [<group>] [<start> [STEP <step>]]
#<NAME> [= <value>]
…
ENDENUMERATION
ENUMERATIONBINARY [<group>] [<start>]
#<NAME> [= <value>]
…
ENDENUMERATIONS’écrit aussi : ENUMERATIONBINARY, ENDENUMERATION
Les éléments
| <group> | Nom facultatif. Rouvrir une énumération du même nom reprend là où elle s'était arrêtée. |
|---|---|
| <start> | La première valeur. 0 par défaut, ou 1 pour ENUMERATIONBINARY. |
| <step> | Ce qui s'ajoute à chaque ligne. 1 par défaut. ENUMERATIONBINARY refuse STEP. |
| <NAME> | Le nom d'une constante, écrit avec #. Une par ligne. |
| <value> | Valeur facultative pour cette constante ; les lignes suivantes repartent d'elle. |
À savoir
- Les valeurs sont des nombres entiers :
0.5est arrondi à 1.<start>,<step>et<value>sont des nombres ou des expressions d'autres constantes ; un appel de commande est refusé. - Le bloc se ferme seulement par
ENDENUMERATION.END ENUMERATIONn'est pas accepté. - Chaque ligne porte un seul
#NAMEet rien d'autre :#A, #Bet un commentaire après le nom sont refusés (BASIC enumeration accepts only #Constant entries). - Sont refusés : les énumérations imbriquées, la réouverture d'une énumération nommée dans l'autre mode, et
ENUMERATIONBINARY 1 STEP 2. ENUMERATION STEP 2n'est pas refusé :STEPest lu comme le nom de l'énumération et 2 comme son départ, d'où les valeurs 2, 3, 4. Donnez toujours un départ :ENUMERATION 0 STEP 2.- Comme avec
#CONSTANT, une FUNCTION ne peut pas lire une constante d'énumération dans un programme avecDO … LOOP.
Exemple
ENUMERATION #RED #GREEN #BLUEENDENUMERATIONENUMERATION 10 STEP 5 #A #B #C = 100 #DENDENUMERATIONENUMERATIONBINARY #FLAG_A #FLAG_B #FLAG_CENDENUMERATIONConsole(Str(#RED) + Str(#GREEN) + Str(#BLUE)) ' 012Console(Str(#A) + " " + Str(#B) + " " + Str(#C) + " " + Str(#D)) ' 10 15 100 105Console(Str(#FLAG_A) + " " + Str(#FLAG_B) + " " + Str(#FLAG_C)) ' 1 2 4Dans le manuel : Constantes et opérateurs