
Comment écrire des conditions avec if, elsif, else
Apprenez à contrôler la logique de votre code Ruby avec les conditions if, elsif et else. Vous découvrirez comment exécuter des actions spécifiques selon que des conditions sont vraies ou fausses.
La structure de base : le test `if`
Le fondement de toute logique de programmation est la capacité de poser une question et d'agir en fonction de la réponse. En Ruby, la structure if est l'outil principal pour cela. Elle permet d'exécuter un bloc de code uniquement si une condition donnée est évaluée comme vraie.
Une condition est simplement une expression qui retourne soit true, soit false. Il s'agit le plus souvent d'une comparaison (== pour égal, > pour supérieur, != pour différent, etc.). La syntaxe est simple : le mot-clé if, suivi de la condition, puis le bloc de code à exécuter, qui se termine par le mot-clé end.
age = 20
if age >= 18
puts "Vous êtes majeur, l'accès est autorisé."
endConseil d'expert : En Ruby, le concept de 'vérité' (truthiness) est très large. Toute valeur qui n'est ni false ni nil est considérée comme vraie dans une condition. Cela signifie que if 0, if "" ou if [] exécuteront tous leur bloc de code, ce qui est une différence notable avec d'autres langages.
Gérer l'alternative avec la clause `else`
C'est bien de pouvoir agir si une condition est vraie, mais que faire si elle est fausse ? C'est là qu'intervient la clause else. Elle fournit un chemin d'exécution alternatif, un bloc de code qui ne sera exécuté que si la condition initiale du if est fausse.
La structure if/else garantit que l'un des deux blocs de code (mais jamais les deux) sera exécuté. C'est la structure parfaite pour gérer des situations binaires, de type 'oui/non' ou 'vrai/faux'.
age = 15
if age >= 18
puts "Vous êtes majeur, l'accès est autorisé."
else
puts "Vous êtes mineur, l'accès est refusé."
end
# Ce code affichera : "Vous êtes mineur, l'accès est refusé."Enchaîner plusieurs conditions avec `elsif`
Les situations ne sont pas toujours binaires. Parfois, vous devez tester une série de conditions les unes après les autres. Vous pourriez être tenté d'imbriquer plusieurs if/else, mais cela rend rapidement le code illisible. La solution propre et idiomatique en Ruby est d'utiliser elsif (une contraction de 'else if').
La structure if/elsif/else vous permet de créer une chaîne de conditions. Ruby les évalue dans l'ordre : il exécute le code du premier if ou elsif dont la condition est vraie, puis il ignore tout le reste de la structure. Le bloc else final est optionnel et sert de 'filet de sécurité' si aucune des conditions précédentes n'est remplie.
note = 14
if note >= 16
puts "Mention Très Bien"
elsif note >= 14
puts "Mention Bien"
elsif note >= 12
puts "Mention Assez Bien"
elsif note >= 10
puts "Admis"
else
puts "Ajourné"
end
# Ce code affichera : "Mention Bien"La clé ici est de comprendre que dès que la condition note >= 14 est trouvée vraie, Ruby exécute le puts correspondant et sort immédiatement du bloc, sans même tester si note >= 12.
Les syntaxes alternatives pour plus de lisibilité
Ruby, fidèle à sa philosophie, offre des alternatives pour rendre le code plus expressif. L'une d'elles est le mot-clé unless, qui est l'exact opposé de if. Le bloc de code d'un unless s'exécute si la condition est fausse. C'est particulièrement utile pour améliorer la lisibilité lorsque vous testez une condition négative.
# Au lieu d'écrire : if !is_logged_in
unless is_logged_in
puts "Veuillez vous connecter."
endEnfin, pour les conditions très simples qui tiennent sur une seule ligne, Ruby propose une syntaxe 'modificatrice' très élégante. Vous écrivez d'abord l'action, puis la condition. C'est une construction que vous verrez très souvent dans le code Ruby professionnel.
# Syntaxe standard
if age >= 18
puts "Accès autorisé"
end
# Syntaxe modificatrice, plus concise et lisible
puts "Accès autorisé" if age >= 18