Tuto de Ruby, round 2 !
Découvrez et maitrisez l'utilisation des conditions en Ruby !
Préambule: les opérateurs de comparaisonCes opérateurs seront nécessaires pour les conditions. Voici la liste:
- == (vérifie l'égalité des variables)
- != (vérifie la non-égalité des variables)
- > (la première variable est strictement supérieure à la deuxième)
- < (la première variable est strictement inférieure à la deuxième)
- >= (la première variable est supérieure ou égale à la deuxième)
- <= (la première variable est inférieure ou égale à la deuxième)
Il existe 3-4 autres opérateurs (
===,
<=>,
.eql?, mais ils sont plus techniques).
La liste complète est à cette adresse:
http://www.tutorialspoint.com/ruby/ruby_operators.htmStructure d'une condition en ifLa particularité de Ruby est de ressembler assez aux autres langages. Comme pour les méthodes, le langage s'inspire de PHP et Python.
La structure type est la suivante:
- Code:
-
if CONDITION then
- - - INSTRUCTIONS
else
- - - AUTRES INSTRUCTIONS
end
Then est facultatif.
La condition doit présenter au moins un opérateur de comparaison. Vous pouvez jouer avec des conditions en série en utilisant
and ou
or.
if a==3 and b==7 renverra
true si et seulement si ces deux variables ont pour valeur respective 3 et 7. Dans tous les autres cas,
false sera renvoyé.
if a==3 or b==7 renverra
true si au moins une des deux conditions est vérifiée. Si ces deux conditions ne sont pas respectées,
false sera renvoyé.
En français:
SI condition
ALORS instruction
Parfois, vous aurez à rajouter une autre condition à la suite dans le cas où la première n'est pas satisfaite. Vous utiliserez
elsif.
- Code:
-
a = 0
if a < 0 # Condition n°1
- - - puts("a est un nombre négatif")
elsif a > 0 # Condition n°2
- - - puts("a est un nombre positif")
else # Équivaut: a >= 0 and a <= 0, donc 0.
- - - puts("a est égal à 0 !")
end
La première condition n'était pas valide: nous sommes passés à la suivante. Celle-ci n'étant pas valide non plus, nous sommes rentrés dans le
else.
Structure d'une condition en caseCase est un mot-clé pratique en Ruby. Il évite le recours à des conditions à répétition.
Imaginez ce code:
- Code:
-
if age == 1
- - - puts("Vous êtes un bébé")
elsif age == 2
- - - puts("Vous êtes un enfant")
elsif age == 3
- - - puts("Vous êtes un enfant")
elsif age == 4
- - - puts("Vous êtes un enfant")
elsif age == 5
- - - puts("Vous êtes un enfant")
...
end
Il serait assez lourd à rédiger, non ? En plus qu'on peut grouper les conditions:
Dans le cas où age <= 10
Afficher "Vous êtes un enfant"
Un mot-clé nous sauve la donne sur ce cas-ci:
case.
- Code:
-
case age
when 0 .. 10
- - - puts("Vous êtes un enfant")
when 11 .. 17
- - - puts("Vous êtes un adolescent")
when 18 .. 25
- - - puts("Vous êtes un jeune adulte")
when 26 .. 100
- - - puts("Vous êtes un adulte")
else
- - - puts("Vous êtes un vampire à vivre si longtemps !")
Case analyse la valeur de la variable age. En fonction de cette valeur, il passe dans le premier
when dont la condition est valide.
Si cette variable age ne répond pas à tous les
when, le programme passe dans le
else.
Remarque: un opérateur est le contraire de if: unless. Il renvoie true si sa condition n'est pas valide, et renvoie false si sa condition est valide.