Menu
Coddy logo textTech

Multi-Value when

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

Eine einzelne when-Klausel kann gegen jeden von mehreren Werten prüfen, getrennt durch Kommas. Der Zweig wird ausgeführt, wenn das Subjekt einem dieser Werte entspricht.

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

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

Sie können auch verschiedene Werttypen in einem when mischen: Strings, Ranges, Regex-Muster; sie alle sind einfach 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 ein (eine Zeile Eingabe). Verwende ein case mit mehrwertigen when-Zweigen, um eines der folgenden auszugeben:

  • vowel: Die Eingabe ist eines von a, e, i, o, u (unabhängig von 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 eine einstellige Zeichenkette. Teste den digit-Zweig mit einem Bereich wie "0".."9".

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

Spickzettel

Eine when-Klausel kann mehrere durch Kommas getrennte Werte abgleichen:

case day
when "Sat", "Sun" then "weekend"
when "Mon", "Tue", "Wed", "Thu", "Fri" then "weekday"
end

Sie können Strings, Bereiche und Regex-Muster im selben case mischen:

case x
when 0, nil    then "empty"
when 1..9      then "small"
when /^huge:/i then "flagged huge"
end

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