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 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.

Retour en haut de la page