Cours

Lua Leçon 2

Conditions et boucles

if, elseif, else, puis les boucles for et while, avec la syntaxe un peu particulière de Lua.

20 min

À la fin de cette leçon, tu sauras

  • Écrire une condition avec if … then … end
  • Répéter avec for et while
  • Connaître les opérateurs and, or, not et ~=

Les conditions

En Lua, pas d'accolades : un bloc commence par then (pour un if) ou do (pour une boucle) et se termine par end.

local vie = 35

if vie <= 0 then
    print("Game over")
elseif vie < 50 then
    print("Attention, vie faible")
else
    print("En pleine forme")
end
  • égal : ==, et différent : ~= (et pas != comme ailleurs) ;
  • combiner : and, or, not, écrits en toutes lettres.

Astuce : en Lua, seuls false et nil sont « faux ». Le nombre 0 et le texte vide "" sont considérés comme vrais, contrairement à beaucoup d'autres langages.

La boucle for

for i = 1, 5 do
    print("Tour " .. i)
end

for i = 10, 0, -2 do   -- de 10 à 0, de 2 en 2
    print(i)
end

On donne le départ, l'arrivée (incluse) et, si besoin, le pas.

La boucle while

local essence = 3
while essence > 0 do
    print("Il reste " .. essence .. " litres")
    essence = essence - 1
end

Attention : Lua n'a pas de raccourci += ni ++. On écrit essence = essence - 1.

À toi de jouer

Avec une boucle for qui va de 1 à 10, affiche chaque nombre. Si le nombre est pair, affiche « … est pair », sinon « … est impair ». Indice : un nombre est pair si i % 2 == 0.

main.lua
  • Une boucle for va de 1 à 10
  • Un if teste si le nombre est pair avec % 2
  • Il y a un else pour les impairs
  • Les mots pair et impair sont affichés
  • Les blocs sont fermés par end
Bloqué ? Voir une solution
for i = 1, 10 do
    if i % 2 == 0 then
        print(i .. " est pair")
    else
        print(i .. " est impair")
    end
end

Quiz

1Comment écrit-on « différent de » en Lua ?
2Combien de fois s'exécute for i = 1, 3 do … end ?
3En Lua, if 0 then print("vrai") end affiche-t-il quelque chose ?