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 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 ein (eine Zeile Eingabe). Verwende ein case mit Mehrwert-when-Zweigen, um eines der folgenden auszugeben:

  • vowel: Eingabe ist eines von a, e, i, o, u (ohne Berücksichtigung von Groß-/Kleinschreibung, konvertiere die Eingabe zuerst in Kleinbuchstaben)
  • digit: Eingabe ist eines von 0..9 (verwende einen Bereich)
  • punctuation: Eingabe ist eines von ., ,, !, ?
  • other: alles andere

Behandle die Eingabe als Zeichenkette aus einem einzelnen Zeichen. Teste den digit-Zweig mit einem Bereich wie "0".."9".

Für die Eingabe E lautet die Ausgabe vowel; für 7 ist es digit; für ! ist es 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