Parcours
/
Ruby
Ruby
/
Programme
/
Conditionnelles
Co

Conditionnelles en Ruby

22 exercices

À propos de Conditionnelles

Ruby dispose de ce qu'on appelle des expressions de contrôle de flux : elles servent à contrôler la façon dont le programme s'exécute et prennent une valeur truthy ou falsey. Certains opérateurs permettent de créer des valeurs truthy ou falsey : ce sont les opérateurs de comparaison.

Deux expressions de contrôle principales déterminent le code qui sera exécuté et celui qui ne le sera pas. Autrement dit, la branche qui sera suivie.

Ce sont les expressions if et unless.

Les opérateurs de comparaison

Les opérateurs de comparaison servent à comparer des valeurs et renvoient une valeur true ou false. Les opérateurs suivants exigent deux valeurs de même type à comparer. Si les valeurs ne sont pas du même type, le compilateur lève une erreur. Voici une liste des opérateurs, avec un exemple où ils renvoient true :

Méthode Description Exemple
< inférieur à 4 < 5
<= inférieur ou égal à 4 <= 4
> supérieur à 3 > 1
>= supérieur ou égal à 2 >= 2

Contrairement aux opérateurs déjà mentionnés, les opérateurs d'égalité et de non-égalité peuvent comparer n'importe quel type de valeur. L'opérateur == sert à vérifier si deux valeurs sont égales, en tenant compte du type de la valeur. L'opérateur != fonctionne de la même manière, mais il renvoie true si les valeurs sont différentes et false si elles sont égales. Voici une liste des opérateurs d'égalité et de non-égalité, avec un exemple où ils renvoient true :

Méthode Description Exemple
== égal 4 == 4
!= différent 5 != 4

L'opérateur de comparaison combinée

L'opérateur de comparaison combinée (parfois appelé opérateur vaisseau spatial) est un opérateur de comparaison particulier. Il est particulier en ce qu'il ne renvoie pas une valeur truthy ou falsey, mais un nombre. Il s'écrit <=> et sert à comparer 2 valeurs. Il renvoie 1 si la valeur de gauche est supérieure à celle de droite, -1 si elle lui est inférieure, et 0 si les valeurs sont égales.

1 <=> 2 # => -1
2 <=> 2 # => 0
3 <=> 2 # => 1

L'instruction if

L'instruction if sert à vérifier si une condition donnée est « truthy » ou « falsey ». Si la condition est truthy, le code à l'intérieur de l'instruction if s'exécute. Une instruction if se termine par le mot-clé end.

value = 1
if value == 1
  "1 is equal to 1"
end
# => "1 is equal to 1"

if value > 2
  "1 is greater than 2"
end
# => nil

L'instruction unless

L'instruction unless fonctionne de façon très similaire à l'instruction if, mais elle exécute le code qu'elle contient si la condition est falsey.

value = 1
unless value == 1
  "1 is not equal to 1"
end
# => nil

unless value > 2
  "1 is not greater than 2"
end
# => "1 is not greater than 2"

L'instruction else

L'instruction else s'utilise conjointement avec l'instruction if. L'instruction else est exécutée si la branche if ne l'est pas.

value = 1
if value == 1
  "1 is equal to 1"
else
  "1 is not equal to 1"
end
# => "1 is equal to 1"

if value > 2
  "1 is greater than 2"
else
  "1 is not greater than 2"
end
# => "1 is not greater than 2"

Les instructions if en cascade

L'instruction elsif s'utilise conjointement avec l'instruction if. L'instruction elsif est exécutée si la branche if ne l'est pas et si la condition de l'instruction elsif est truthy. Les instructions elsif peuvent être chaînées, et la première condition truthy est exécutée. Une instruction else peut aussi se placer à la fin de l'instruction if : elle s'exécute si aucune des instructions précédentes n'a été vraie.

value = 1
if value == 0
  "1 is equal to 0"
elsif value > 2
  "1 is greater than 2"
else
  "1 is not equal to 0 and 1 is not greater than 2"
end
# => "1 is not equal to 0 and 1 is not greater than 2"

if et unless en suffixe

Les instructions if et unless peuvent aussi s'employer comme [suffixe][if-as-suffix] : c'est utile quand on veut exécuter une seule ligne de code si une condition est vraie. Pour cela, on place l'instruction if ou unless après le code à exécuter.

value = 1
"1 is equal to 1" if value == 1
# => 1 is equal to 1

"1 is not equal to 1" unless value == 1
# => nil
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet

Apprends Conditionnelles

L'entraînement est verrouillé

Déverrouille 10 exercices de plus pour t'entraîner sur Conditionnelles