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"
endGrundlagen 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"
endMehrere 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"
endDer 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"
endcase 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 letterDas 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"
endBereiche 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"
endNach 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"
endDie 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"
endcase 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"
endAlles 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 msgKurzer Check
Testen Sie Ihr Verständnis von case/when.
Zusammenfassung
Sie haben den case-Ausdruck gelernt:
whenverwendet die erste Übereinstimmung und springt anschließend zuend.- Ein
whenkann mehrere Werte auflisten. casegibt einen Wert zurück und unterstütztthen.- 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 kindHä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
- if, unless, ternary
- case/when-Ausdrücke
- Truthiness in Ruby
- Guard Clauses