next up previous contents index
Search Next: Schleifen und Schleifenkontrolle Up: Kontrollstrukturen und Wertebereiche Previous: Einfache Verzweigungen   Contents   Index


Mehrfachverzweigung

Die Mehrfachverzweigung mit 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.



(C) 2002 by dpunkt.de, Armin Roehrl, Stefan Schmiedl, Clemens Wyss 2002-01-20