Les boucles
Nous verrons ici les boucles qui permettent de répéter une partie du code un certain nombres de fois.
While¶
Cette boucle exécutera le bloc qui lui est associé tant que la condition qui lui est donnée est vérifiée. Sa syntaxe d'utilisation est while <condition>:
. Par exemple le script suivant affichera successivement dans la console les nombres de 0 à 50.
on script load:
set {counter} to 0
while {counter} < 50:
print "counter = " + {counter}
add 1 to {counter}
Warning
Attention aux boucles infinies. Le code while True:
ou while 5=5:
exécutera le code une infinité de fois, ce qui stoppera l'exécution du jeu tant que la boucle ne sera pas terminée.
For¶
Cette boucle est différente de la première dans son fonctionnement et son utilité. En effet, elle ne s'appuie par sur une condition pour fonctionner mais sur un tableau. Si l'expression passée dans la boucle n'est pas un tableau, une erreur sera levée. Sa syntaxe d'utilisation est for {variable} in {array}
. Le bloc associé à la boucle va être exécuté pour chaque élément du tableau, qui peut être récupéré grâce à la variable {variable}
passée en premier paramètre.
L'indice de la boucle (index en anglais) peut être récupéré en utilisant <nom>'s index
.
Par exemple :
on script load:
set {a} to numbers in range of 5 #Créé un tableau équivalent à [0,1,2,3,4,5]
for {i} in {a}: #Pour chaque élément noté i dans le tableau a
print {i}*2 #Affiche la valeur i*2.
print {i}'s index #Affiche le nombre d'itérations
L'action break
¶
Il est possible de stopper l'exécution d'une boucle, même si la condition d'une boucle while
est vérifiée ou même si le tableau d'une boucle for
n'a pas été entièrement parcouru. Pour cela, il suffit d'utiliser l'action break loop
:
Info
Cela ne concerne que les boucles while
et for
.
for {i} in numbers in range of 10:
print {i}
if {i} = 4:
break loop
Ce code affichera successivement les nombres de 1 à 4, puis quittera la boucle. Lorsque plusieurs boucles sont imbriquées, il est possible de quitter plusieurs boucles, en utilisant l'action break {number} loops
. Les boucles while
et for
placées {number} fois plus haut seront également arrêtées.