Aller au contenu

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.