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 un peu différente de la précédente. En effet, elle ne s'appuie pas 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. 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.
Casser une boucle
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
:
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.