Les boucles

La boucle while

Elle s’exécute tant que la condition est vraie :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
i = 0
while i < 5 do
  print(i)
  i = i + 1
end

-- output :
--  0
--  1
--  2
--  3
--  4

Si vous avez déjà pratiqué d’autres langages de programmation, vous pourriez être tentés, dans l’exemple ci-dessus, d’écrire à la ligne 4 :

1
2
-- Remplacer i = i + 1 par :
i++

Cependant, Lua ne supporte pas cette notation dite d’auto-incrémentation.

La boucle until

Elle fonctionne presque comme une boucle while, à la différence qu’elle s’exécute au moins une fois. Ici, on répétera les instructions jusqu’à ce que i soit supérieur à 5 :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
i = 0
repeat
  print(i)
  i = i + 1
until i > 5

-- output :
--  0
--  1
--  2
--  3
--  4
--  5

Un autre exemple, où la condition est fausse dès le départ. On constate que la boucle s’exécute tout de même une fois :

1
2
3
4
5
6
7
8
i = 0
repeat
  print(i)
  i = i + 1
until i < 5

-- output :
--  0

La boucle for

C’est sans doute la boucle la plus importante et la plus utilisée. Lua propose plusieurs formes de boucles for, dont certaines seront abordées dans l’exemple sur les tables. Voici la forme dite numérique :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
-- Forme numérique
for i = 0, 5 do
  print(i)
end

-- output :
--  0
--  1
--  2
--  3
--  4
--  5

Il est aussi possible de spécifier un pas d’incrémentation (ou de décrémentation si besoin) :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
-- Forme numérique avec spécification du pas
for i = 5, 0, -1 do
  print(i)
end

-- output :
--  5
--  4
--  3
--  2
--  1
--  0