Menu
Coddy logo textTech

Ternärer Operator

Teil des Abschnitts Logik & Programmfluss der Ruby-Journey von Coddy — Lektion 40 von 56.

Der Ternary-Operator ist eine einzeilige Abkürzung für ein if/else, das einen Wert zurückgibt. Die Syntax lautet condition ? value_if_true : value_if_false.

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

Es ist dasselbe wie zu schreiben:

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

Verwenden Sie den Ternary-Operator, wenn beide Zweige kurze Werte zurückgeben. Wenn einer der Zweige mehr als einen Ausdruck benötigt, greifen Sie auf ein echtes if/else zurück: Zu viel in einen Ternary-Operator zu packen, macht ihn schwer lesbar.

Sie können es direkt in anderen Ausdrücken verwenden, einschließlich Interpolation:

count = 1
puts "#{count} item#{count == 1 ? "" : "s"}"   # 1 Element
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}"   # 5 Elemente
challenge icon

Aufgabe

Einfach

Lies eine Ganzzahl n von der Eingabe ein. Verwende den Ternär-Operator (keine if/else-Blöcke) und gib genau Folgendes aus:

<n> is <label>

wobei label Folgendes ist:

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

Hinweis: Verwende einen verschachtelten Ternär-Operator, condition ? a : (other_condition ? b : c).

Für die Eingabe 5 lautet die Ausgabe 5 is positive. Für 0 lautet sie 0 is zero.

Spickzettel

Der ternäre Operator ist eine einzeilige if/else-Abkürzung: condition ? value_if_true : value_if_false

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

Ternäre Operatoren können verschachtelt und innerhalb von String-Interpolation verwendet werden:

count = 5
puts "#{count} item#{count == 1 ? "" : "s"}"  # 5 items

# Verschachtelter ternärer Operator
n = 3
label = n > 0 ? "positive" : (n < 0 ? "negative" : "zero")

Verwenden Sie den ternären Operator nur für kurze, einfache Verzweigungen — bevorzugen Sie if/else, wenn Verzweigungen mehrere Ausdrücke erfordern.

Probier es selbst

n = gets.to_i

# TODO: Einen ternären Ausdruck verwenden, um das Label zu erstellen, dann puts
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Programmfluss