Heim

Verzweigung (Programmierung)

Verzweigungen bilden mit den Schleifen in Programmiersprachen die Kontrollstrukturen.

Aufgrund einer Bedingung wird der Programmfluss (die Abfolge der Ausführung der Befehle) verzweigt. Im Gegensatz zu Schleifen, die den Programmablauf nach oben zurückführen, geht der Ablauf bei einer Verzweigung immer über einen von mehreren Wegen weiter nach unten. Synonyme für Verzweigungen sind Auswahl und Selektion.

Prinzipiell unterscheidet man drei Arten der Verzweigung:

Realisiert sind die ein- und zweiseitige Verzweigung in Programmiersprachen meist mehr oder weniger wie folgt:

IF <bedingung> THEN
   <Aktionsfolge>
ENDIF

bzw.

IF <bedingung> THEN
   <Aktionsfolge>
ELSE
   <AlternativeAktionsfolge>
ENDIF

Die mehrfache Verzweigung mit:

CASE <Wert> OF
  <Konstante1>:  <AktionsfolgeA>
  <Konstante2>:  <AktionsfolgeB>
  ...
  OTHERWISE: <Aktionsfolge>
END

Einige Programmiersprachen haben auch Mischformen der Art:

CASE
  WHEN <Bedingung1> THEN <AktionsfolgeA>
  WHEN <Bedingung2> THEN <AktionsfolgeB>
  ...
  OTHERWISE: <Aktionsfolge>
END

wobei bei einigen wenigen sogar festgelegt ist, dass es der Implementation überlassen bleibt, in welcher Reihenfolge die Bedingungen geprüft werden. In jedem Fall wird normalerweise stets nur eine der Aktionsfolgen ausgeführt; eine Ausnahme bilden hier jedoch die Mitglieder der C-Sprachfamilie, bei denen man mittels break explizit verhindern muss, dass direkt mit der nächsten Aktionsfolge weitergemacht wird.

Bei manchen Programmiersprachen darf die OTHERWISE-Klausel ausgelassen werden, oder sie ist gar nicht erst erlaubt; dann kommt es, wenn keiner der Fälle zutrifft, zu einem Laufzeitfehler, sofern die Sprachdefinition das so vorschreibt.


Das in vielen Programmiersprachen anzutreffende Schlüsselwort If für die Realisierung einer Verzweigung wird von vielen Anfängern häufig fälschlicherweise als If-Schleife bezeichnet. Eine solche Schleife müsste aber tatsächlich etwa so aussehen:

 START:
  IF <bedingung>
  THEN
     <Aktionsfolge>
     GOTO START
  ELSE
     <AlternativeAktionsfolge>
  ENDIF


Siehe auch