Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Si vous avez déjà programmé dans un autre langage, ce mot peut vous être familier. Sinon, il doit vous être totalement étranger... Dans ce cas, ne vous en faites pas car dans tous les programmeurs que je connais, tous les maîtrisent : quelques petites fautes au début car certaines parties ont été mal comprises, mais elles sont vite éclaircies...
Pour faire simple, nous allons commencer par la partie Anglais tout de suite, ça éclaircira un peu les choses. En anglais, "label" veut dire "étiquette"... "étiquette", ça n'a rien à voir avec la programmation me direz-vous... Eh bien si mais je l'avoue, c'est un peu tordu. Je vais vous expliquer : dans le code source d'un programme, il est possible de mettre des sortes d'étiquettes et de dire au programme d'aller à l'étiquette tant. C'est surtout très utile lorsque c'est combiné avec les conditions.
Il est fort probable que cette définition ne vous ait pas bien aidé à comprendre. C'est assez normal, pour comprendre, il faut un exemple d'utilisation ainsi que quelques autres indications...
Les fonctions
Il existe deux fonctions relatives aux labels : lbl et goto. Lbl est un raccourci de label (jusque là, ça va

) et Goto vient (encore) de l'anglais et signifie (j'espère que vous l'avez compris) "aller à" (du verbe "go"). Le chemin d'accès est : [Shift], [VARS] (Prgm), [F3] (JUMP) et [F1] (Lbl) ou [F2] (Goto).
La syntaxe et les paramètres
Pour qu'un label marche, il lui faut un nom. Ceci pour qu'il puisse être déclaré et que l'on puisse dire "aller au label portant ce nom-là" (c'est le rôle de la fonction Goto). Mais vous n'allez pas créer les noms vous-même : ils sont précréés (si on peut appeler ça des noms). Il y en a 38 : les 26 lettres de l'alphabet, le rhô, le thêta et les 10 chiffres (de 0 à 9). Voici donc venir la syntaxe :
Lbl <nom du label>
<toutes les actions que vous voulez>
Goto <nom du label>
Eh oui, c'est une sorte de boucle...
Voici un petit schéma pour mieux comprendre :
Un exemple
Nous allons imaginer que nous entrons dans un restaurant, que nous prenons un choix et que la calculatrice nous affiche le prix :
Code : Autre1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| 0->A~Z
Lbl 0
"Bonjour, que voulez-vous ?"
"1) un steak"
"2) un poisson"
"3) une salade"
"4) une boisson"
?->A
A=1=>Goto 1
A=2=>Goto 2
A=3=>Goto 3
A=4=>Goto 4
A>4=>Goto 0
Lbl 1
"Vous avez choisi le steak"
"Ca vous fera 10 ?"¤
Goto 0
Lbl 2
"Vous avez choisi le poisson"
"Ca vous fera 8,5 ?"¤
Goto 0
Lbl 3
"Vous avez choisi la salade"
"Ca vous fera 6 ?"¤
Goto 0
Lbl 4
"Vous avez choisi la boisson"
"Ca vous fera 2 ?"¤
Goto 0 |
Bon voilà, c'est un code tout simple et sans grand intérêt mais ça devrait vous aider à comprendre. C'est vrai, nous aurions pu faire ça avec les fonctions If, Then, IfEnd mais l'avantage des labels est que si jamais vous devez à la fin de votre programme (par exemple) réexécuter ce que vous avez déjà exécuté dans des labels, il vous suffit de dire
Goto <nom du label>. Vous comprendrez par la suite qu'il existe d'autres avantages à cette utilisation mais je vous laisse les découvrir tout seul car sinon, je vais vous embrouiller.
Les labels ont beau être très pratiques, ils sont très capricieux, il arrive qu'ils plantent alors qu'il n'y a aucune erreur. Ceci arrive si votre code est trop long, s'il y a trop d'espace entre le Goto et le Label auquel le Goto renvoie, si vous utilisez beaucoup de labels... méfiez-vous-en : utilisez-les modérément (et non comme moi au début

) et favorisez plutôt les boucles et les conditions vues dans le chapitre précédent, elles sont plus sûres.
Voilà un bon point de fait : avec le chapitre suivant, vous devriez bientôt être capable de faire des jeux conséquents. Pour vous entraîner à faire marcher les Labels, je vous propose de refaire le jeu du plus ou du moins (le TP précédent) en remplaçant les Do et LpWhile (ou les While et WhileEnd) par des Labels. Si vous avez bien compris, c'est même plus facile à réaliser qu'avec les boucles que nous avons utilisées précédemment. Je vous mets le code ci-dessous. Bonne chance !
Code : Autre1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| Lbl A
0->A~Z
ClrText
Int100Ran#+1->X
Lbl 0
"NOMBRE MYSTERE"?->J
J<X => "+ GRAND"
J>X => "+ PETIT"
J=X => Goto 1
Goto 0
Lbl 1
"BRAVO VOUS AVEZ TROUVE"¤
Goto A |
Voilà c'est fait !
Il est possible que par la suite, dans mes exemples, je n'aille pas à la ligne après mes labels mais que je mette les deux points (:) (chemin d'accès : [Shift], [VARS] (Prgm), [F6], [F5] (:).). Je trouve ça plus clair.