case ist ebenfalls sehr flexibel
einsetzbar, da sie auch auf selbst definierte Klassen angewendet werden
kann, wenn diese eine eigene Version des Operators === implementieren
oder erben.
case 0 when 0 then "Null" when 1 then "Eins" else "gibt's nicht" end #-> "Null" case 2 when 0,1 then "zu wenig" else "ok" end #-> "ok" case "22" when /[024567]/ then 0 when "22" then 1 end #-> 0 case 21 when 0..14 then "unten" when 15..30 then "oben" end #-> "oben"
Sollte in verschiedenen Zweigen die gleiche Möglichkeit enthalten
sein, wird nur der erste passende Zweig ausgeführt.
Im letzten Beispiel
wurden Bereiche (Instanzen der Klasse Range) verwendet,
die noch besprochen werden.