Si nous ne connaissons pas le nombre de fois qu’une boucle doit se répéter nous utiliserons alors les boucles WHILE ou REPEAT qui s’exécutent avec un test de condition.
- WHILE :
-La boucle s’exécute SI la condition est vraie.
-La boucle se répète TANT QUE la condition est vraie.
-La condition est vérifiée avant l’exécution du corps de la boucle. - REPEAT :
-La boucle s’exécute au minimum une fois puis se répète TANT QUE la condition est vraie.
-La condition est vérifiée après l’exécution du corps de la boucle.
La Boucle While
La boucle while vérifie d’abord la condition avant d’être exécuté la première fois.
Tant que la condition est vraie la boucle s’exécute !
Pseudo-code Boucle While :
TANT QUE la condition est vraie ALORS fais ceci FIN |
Syntaxe :
while condition do end
exemple :
pieces = 0 while pieces < 100 do pieces = pieces + 1 end print(pieces)
sortie console :
100
La boucle s’est exécuté tant que pieces était encore inférieur à 100, une fois que la condition est devenue fausse (pieces égale à 100) la boucle s’est arrêtée.
La boucle while ne s’exécute que SI la condition est VRAIE exemple :
pieces = 0 while pieces > 0 do pieces = pieces - 1 end print(pieces)
sortie console :
0
Comme pieces n’est pas supérieur à 0 la boucle ne s’est pas exécuté et n’a donc pas enlever de pièces à notre joueur.
Un exemple avec l’utilisation d’un booléen :
loop = true pieces = 0 while loop do pieces = pieces + 1 if pieces == 100 then loop = false end end print(pieces)
sortie console :
100
Tant que loop vaut true, la boucle continue et on a mis une condition qui dit que si pièces est égale à 100 alors loop vaut false, ainsi la boucle peut s’arrêter.
La Boucle Repeat Until
La boucle REPEAT, est particulière puisqu’elle s’exécute toujours la première fois, car la condition n’est pas vérifiée au début, mais à la fin de celle-ci.
Tant que la condition est vraie la boucle s’exécute !
Pseudo-code Boucle While :
FAIT ceci ET TANT QUE la condition est vraie RECOMMENCE sinon STOP la boucle. |
Syntaxe :
repeat until condition
exemple :
pieces = 0 repeat pieces = pieces + 1 until pieces >= 100 print(pieces)
sortie console :
100
Comme vous pouvez le remarquer c’est assez semblable à une boucle While, cependant une des majeures différences entre les deux, c’est le moment ou la condition est vérifiée, regardez l’exemple suivant pour bien comprendre la différence.
exemple :
pieces = 0 repeat pieces = pieces - 1 until pieces <= 0 print(pieces)
sortie console :
-1
ICI pieces est bien inférieur ou égale à ZÉRO cependant la boucle repeat s’exécute avant la vérification de la condition.
C’est pourquoi le joueur a perdu une pièce !
ATTENTION
Les boucles While et Repeat sont relativement dangereuses si elles sont mal utilisées, car on peut facilement bloquer un programme dans le cas où une condition ne peut pas changer dans l’exécution de la boucle !
C’est d’autant plus vrai avec l’utilisation de booléen. il faut bien penser à changer la valeur du booléen dans la boucle, sinon on restera coincé dans une boucle infinie…
Restez bien attentif et contrôler bien ces boucles si vous êtes amené à les utiliser.
On préférera toujours une alternative avec une boucle FOR seulement si cela est possible, bien évidement.
Comment ? Vous voulez vraiment un exemple !?
Bon d’accord, mais ATTENTION !
exemple à ne surtout pas refaire dans vos jeux ! ! !
pieces = 0 repeat pieces = pieces + 1 until pieces <= 0 print(pieces)
La condition n’est jamais atteinte, donc le programme reste coincé dans une boucle infinie ! résultat :
Je vous aurai prévenu =)
Donc à utiliser avec précaution 😀
Rendez-vous au cours suivant !