0Pricing
Ruby Academy · Lektion

case/when-Ausdrücke

Mehrfache Verzweigungen

case/when-Ausdrücke ist eine kostenlose Ruby Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ruby Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Mehrwegverzweigungen

Wenn Sie einen Wert mit vielen Möglichkeiten vergleichen, wird eine lange if/elsif-Kette unübersichtlich. Rubys case-Ausdruck macht Mehrwegverzweigungen übersichtlich und gut lesbar.

day = "Mon"
case day
when "Sat", "Sun"
  puts "Weekend"
else
  puts "Weekday"
end

Grundlagen von case / when

Der Wert nach case wird der Reihe nach mit jedem when verglichen. Die erste Übereinstimmung wird ausgeführt, anschließend springt die Steuerung zu end.

grade = "B"
case grade
when "A"
  puts "Excellent"
when "B"
  puts "Good"
when "C"
  puts "Okay"
end

Mehrere Werte pro when

Listen Sie mehrere Werte in einem when auf und trennen Sie sie durch Kommas. Wenn einer davon übereinstimmt, wird dieser Zweig ausgeführt.

char = "e"
case char
when "a", "e", "i", "o", "u"
  puts "Vowel"
else
  puts "Consonant"
end

Der else-Zweig

Fügen Sie else als Auffangzweig hinzu. Ohne ihn gibt ein nicht passendes case einfach nil zurück.

code = 500
case code
when 200
  puts "OK"
when 404
  puts "Not Found"
else
  puts "Other status"
end

case ist ein Ausdruck

Wie if gibt auch case den Wert des passenden Zweigs zurück, sodass Sie ihn direkt zuweisen können.

score = 82
letter = case
when score >= 90 then "A"
when score >= 80 then "B"
else "C"
end
puts letter

Das Schlüsselwort then

Verwenden Sie then, um den Rumpf bei kurzen Zweigen in dieselbe Zeile wie when zu setzen.

n = 3
case n
when 1 then puts "one"
when 2 then puts "two"
when 3 then puts "three"
end

Bereiche abgleichen

Ein when kann einen Range enthalten. Ruby verwendet im Hintergrund den Operator ===, und das === eines Range prüft die Zugehörigkeit.

score = 73
case score
when 90..100 then puts "A"
when 70..89 then puts "B"
when 0..69 then puts "C"
end

Nach Klasse abgleichen

Da Class === object true ergibt, wenn das Objekt eine Instanz ist, können Sie nach Typ verzweigen.

value = 3.14
case value
when Integer then puts "an integer"
when Float then puts "a float"
when String then puts "a string"
end

Die Magie von ===

Jedes when ruft pattern === value auf. Ranges, Classes und Regexps definieren alle ein nützliches Verhalten für ===. Deshalb ist case so flexibel.

email = "jane@example.com"
case email
when /@/ then puts "Looks like an email"
else puts "No @ sign"
end

case ohne Prüfwert

Lassen Sie den Wert nach case weg, um eine übersichtliche Kette boolescher Bedingungen zu schreiben, ähnlich wie ein ordentliches if/elsif.

temp = 5
case
when temp < 0 then puts "Freezing"
when temp < 15 then puts "Cold"
when temp < 25 then puts "Mild"
else puts "Warm"
end

Alles zusammenführen

case ist ideal, wenn ein Wert die Entscheidung bestimmt. Verwenden Sie die Form ohne Prüfwert, wenn jeder Zweig eine eigene boolesche Prüfung ist.

role = :admin
msg = case role
when :admin then "Full access"
when :editor then "Can edit"
when :viewer then "Read only"
else "No access"
end
puts msg

Kurzer Check

Testen Sie Ihr Verständnis von case/when.

Zusammenfassung

Sie haben den case-Ausdruck gelernt:

  • when verwendet die erste Übereinstimmung und springt anschließend zu end.
  • Ein when kann mehrere Werte auflisten.
  • case gibt einen Wert zurück und unterstützt then.
  • Ranges, Classes und Regexps funktionieren, weil when === verwendet.
  • Die Form ohne Prüfwert ist eine übersichtliche boolesche Kette.
n = 42
kind = case
when n.zero? then "zero"
when n.positive? then "positive"
else "negative"
end
puts kind

Häufig gestellte Fragen

Ist die Lektion „case/when-Ausdrücke“ kostenlos?

Ja — der vollständige Text von „case/when-Ausdrücke“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ruby Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ruby Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „case/when-Ausdrücke“?

Mehrfache Verzweigungen Du übst Ruby Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Ruby Academy zu starten?

Keine Vorkenntnisse erforderlich. Ruby Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „case/when-Ausdrücke“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Ruby Academy-Lektion Code schreiben und ausführen?

Ja. Jede Ruby Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. if, unless, ternary
  2. case/when-Ausdrücke
  3. Truthiness in Ruby
  4. Guard Clauses
← Zurück zu Ruby Academy