Menu
Coddy logo textTech

when mit mehreren Werten

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

Eine einzelne when-Klausel kann mit jedem von mehreren Werten übereinstimmen, die durch Kommas getrennt sind. Der Zweig wird ausgeführt, wenn das Subjekt mit einem dieser Werte übereinstimmt.

day = "Sat"
kind = case day
       when "Sat", "Sun"                          then "weekend"
       when "Mon", "Tue", "Wed", "Thu", "Fri"  then "weekday"
       end
puts kind   # Wochenende

Das ist viel sauberer als das Verketten von || in einem if/elsif.

Sie können Werttypen in einem when auch mischen: Strings, Ranges, Regex-Muster – es sind einfach alles Dinge, die auf === reagieren:

def describe(x)
  case x
  when 0, nil       then "empty"
  when 1..9         then "small"
  when 10..99       then "medium"
  when /^huge:/i    then "flagged huge"
  end
end

Wählen Sie die Formen, die jeden Zweig auf einen Blick leicht lesbar machen.

challenge icon

Aufgabe

Einfach

Lies ein einzelnes Zeichen (eine Eingabezeile) ein. Verwende ein case mit when-Zweigen mit mehreren Werten, um eines der folgenden Ergebnisse auszugeben:

  • vowel: Die Eingabe ist eines von a, e, i, o, u (ohne Beachtung der Groß-/Kleinschreibung; wandle die Eingabe zuerst in Kleinbuchstaben um).
  • digit: Die Eingabe ist eines von 0..9 (verwende einen Bereich).
  • punctuation: Die Eingabe ist eines von ., ,, !, ?
  • other: alles andere

Behandle die Eingabe als Zeichenkette mit genau einem Zeichen. Teste den Ziffernzweig mithilfe eines Bereichs wie "0".."9".

Für die Eingabe E lautet die Ausgabe vowel; für 7 lautet sie digit; für ! lautet sie punctuation.

Probier es selbst

ch = gets.chomp

# TODO: case ch.downcase ... mit when-Zweigen für mehrere Werte
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

Übe selbstständig: Online-Ruby-Compiler