Les conditionnels en Lua

Introduction aux conditionnels

Les conditionnels sont des éléments fondamentaux de la programmation, car ils permettent d'évaluer des conditions pour déterminer le flux d'exécution d'un programme. En termes simples, ils permettent d'exécuter des blocs de code en fonction de si une condition est vraie ou fausse.

Les instructions if

En Lua, une instruction if a la structure suivante :

if  then
    
end

Quand la condition est vraie, le code à l'intérieur des accolades est exécuté. Si la condition est fausse, ce code est ignoré. Pour fermer toute instruction conditionnelle, il est impératif d'utiliser le mot-clé end.

Prenons un exemple d'une instruction if avec une condition vraie :

local a = 13
local b = 16
if a < b then
    a = a + 5
end
print(a) -- Cela affiche 18 car a est moins que b.

Dans cet exemple, le code a mis à jour la valeur de a parce que la condition a < b était vraie.

Quand la condition est fausse

Observons maintenant un scénario où la condition est fausse :

local a = 8
local b = 10
if a == b then
    print(b + a)
end
-- Rien n'est affiché car a n'est pas égal à b.

Puisque a n'est pas égal à b, le bloc de code à l'intérieur de l'instruction if est ignoré.

Les instructions else

On peut étendre la logique conditionnelle avec des instructions else :

if  then
    
else
    
end

Si la condition dans l'instruction if est fausse, alors le code dans l'instruction else sera exécuté. En d'autres termes, l'instruction else sert de plan de secours. Voici un exemple :

local isNightTime = false
if isNightTime then
    print("Bonne nuit!")
else
    print("Bonjour!")
end
-- Cette instruction affiche "Bonjour!" car la condition est fausse.

Les instructions elseif

Enfin, Lua permet l'utilisation de nombreuses conditions grâce aux instructions elseif :

if  then
    
elseif  then
    
else
    
end

Cela permet des branches de conditions multiples. Voici un exemple d'utilisation :

local player1 = 9
local player2 = 12
if player1 >= 20 and player2 >= 20 then
    print("Tout le monde gagne!")
elif player1 > player2 then
    print("Le joueur 1 gagne avec " .. player1 .. " points!")
elif player1 < player2 then
    print("Le joueur 2 gagne avec " .. player2 .. " points!")
else
    print("C'est une égalité.")
end
-- Cela affiche "Le joueur 2 gagne avec 12 points." car c'est la première condition vraie.