Itérateurs en Lua

Introduction aux itérateurs

Les itérateurs sont des outils fondamentaux dans la programmation, permettant de parcourir un ensemble de données. En Lua, ils sont particulièrement utiles pour effectuer des répétitions, que ce soit un nombre déterminé de fois ou jusqu'à ce qu'une condition spécifique soit atteinte.

Types d'itération

En Lua, plusieurs méthodes existent pour itérer ou répéter du code. Certaines sont conçues pour parcourir des tableaux, tandis que d'autres se concentrent sur l'exécution répétée d'une commande tant qu'une condition est valide. Voici quelques exemples d'itérations conditionnelles.

Boucle While

L'une des formes d'itération les plus communes est la boucle "while". En Lua, celle-ci se construit avec le mot-clé while, et le corps de la boucle est délimité par les mots-clés do et end, à la différence des accolades que vous pourriez retrouver dans d'autres langages. Il est également possible d'utiliser la syntaxe repeat-until qui remplit une fonction similaire.

-- Cette itération va exécuter le code fourni tant que la CONDITION est vraie.
x = 2
while x > 0 do
    print("x est encore supérieur à 0!")
    x -= 1
done
print("x n'est plus supérieur à 0!")
-- Répéter une Tâche jusqu'à ce que la CONDITION soit vraie.
i = 1
repeat
    i = i + 1
    print(i) -- 1, 2, 3, 4, ..., 20
until i == 20 -- Arrête l’itération lorsque 'i' devient 20

Boucle For

Il est également possible de créer une boucle pour parcourir les éléments d'une liste en utilisant la syntaxe for i = n1, n2, n3 do. Cette méthode d'itération ne récupère pas automatiquement les paires indice-valeur, mais répète une tâche un nombre déterminé de fois. Les valeurs n sont généralement utilisées pour indiquer le début, la fin et l'incrément d'une boucle classique.

-- Répéter la méthode "print" avec ce type d'itération.
for i = 1, 3 do
    print(i) -- Affiche 1, 2, 3
end
--[[
  Ceci peut également être inversé en utilisant un troisième paramètre facultatif.
  Ce paramètre contrôlera comment 'i' s'incrémente à chaque itération.
]]--
for i = 3, 1, -1 do
    print(i) -- Affiche 3, 2, 1
end

Parcourir des tableaux avec itérateurs

Les itérateurs peuvent également servir pour parcourir des tableaux. Pour cela, le mot-clé global pairs est utilisé afin d'itérer à travers un tableau de manière ordonnée.

list = {"🌽", "🥦", "🍄"}
for Index, Value in pairs(list) do
    print(Index) -- Affiche 1, 2, 3
    print(Value) -- Affiche 🌽, 🥦, 🍄
end