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 appris d’autres langages de programmation, dans l’exemble précédent, vous pourriez être tentés d’écrire ceci à la ligne 4 :

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

Cependant, Lua ne supporte pas cette forme de notation dîtes d’auto-incrémentation.

La boucle until

Elle fonctionne presque comme la boucle while à la différence qu’elle s’exécute au moins 1 fois. Ici on répètera les opérations 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 mais cette fois-ci la condition fausse dès le départ. On remarque que la boucle s’effectue au moins 1 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 certainement la boucle la plus importante et la plus utilisée. Il est possible de la trouver sous plusieurs formes dont 2 seront aborder dans l’exemple sur les tables. Voici la forme numérique :

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

Il est possible de spécifier le pas d’incrémentation (ou décrémentation selon les besoins) :

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