Menu
Coddy logo textTech

Opérateur ternaire

Fait partie de la section Logique et Flux du Journey Ruby de Coddy. Leçon 40 sur 56.

L’opérateur ternaire est une version abrégée sur une seule ligne d’une structure if/else qui renvoie une valeur. La syntaxe est condition ? value_if_true : value_if_false.

age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"
puts status   # Eligible

C’est la même chose que d’écrire :

status = if age >= 18
           "Eligible"
         else
           "Not Eligible"
         end

Utilise ternary lorsque les deux branches renvoient des valeurs courtes. Si l’une des branches nécessite plus d’une expression, reviens à un véritable if/else : mettre trop de choses dans un ternary le rend difficile à lire.

Vous pouvez l’utiliser directement dans d’autres expressions, y compris dans une interpolation :

count = 1
puts "#{count} item#{count == 1 ? "" : "s"}"   # 1 élément
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}"   # 5 éléments
challenge icon

Défi

Facile

Lisez un entier n depuis l’entrée. En utilisant l’opérateur ternaire (sans blocs if/else), affichez exactement :

<n> is <label>

label est :

  • positive lorsque n > 0
  • negative lorsque n < 0
  • zero lorsque n == 0

Indice : utilisez un ternaire imbriqué, condition ? a : (other_condition ? b : c).

Pour l’entrée 5, la sortie est 5 is positive. Pour 0, c’est 0 is zero.

Essayez vous-même

n = gets.to_i

# TODO: utilise une expression ternaire pour construire le label, puis puts
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux

Entraînez-vous par vous-même : Compilateur Ruby en ligne