Wertunterscheidungen mit switch

Bei Fallunterscheidungen mit if können beliebig viele und auch komplexe Bedingungen abgefragt werden. Die Bedingungen werden dann mit logischen Operatoren verknüpft. In Fallbeispiel 2 wird beispielsweise ein Bereich mit if abgefragt:

if (zahl > 0 && zahl <= 50)

...

Switch Abfragen hingegen sind schnelle überischtliche Abfragen, die nur eine Bedingung prüfen können. Die Switch-Anweisung wird auch als Fallauswahl bezeichnet. Das folgende Bild zeigt das Prinzip und die Darstellung einer Switch-Abfrage:

  • Hinter jedem Auswahlfall (case) steht der Code, der ausgeführt wird, wenn die Variable wert einen der Zahlenwerte annimmt.
  • Am Ende jeder Auswahlmöglichkeit muss in den meisten Fällen ein break stehen. Das Schlüsslwort break bewirkt, dass nach der Ausführung des Codes die Switch-Abfrage beendet und verlassen wird.
  • Wenn kein Fall zutrifft, wird der Code hinter default ausgeführt. Das default-Fall kann auch weggelassen werden. Dann wird nichts ausgeführt, wenn kein Fall zutrifft.

 

Positive Merkmale der Switch-Abfrage sind:

  • übersichtlicher Code ohne Verschachtelung
  • schneller als if - Abfragen

Dafür gibt es aber auch einige Einschränkungen:

  • nur ganzzahlige Werte können abgefragt werden
  • nur eine einzige Bedingung kann abgefragt werden
  • keine >, <, … Vergleiche

 

Fallbeispiel 4: Das folgende Programm liest eine Zahl von der Konsole ein. Mit einer Switch-Abfrage wird ermittelt, welche Zahl eingelesen wurde. Als Ausgabe erscheint dann ein Satz, welche Zahl eingegeben wurde.