Programmiersprache Pascal

Mehrfachverzweigung

Struktogramm

Die alternativ auszuführenden Aktionen hängen von verschiedenen Bedingungen ab, die in einer vorgegebenen Reihenfolge ausgewertet werden, d.h. die Bedingungen beruhen auf der Auswertung unterschiedlicher Ausdrücke.

Pseudocode

   IF bedingung_1 THEN
     anweisungsfolge_1
   ELSIF bedingung_2 THEN
     anweisungsfolge_2
    ...
   ELSE
     anweisungsfolge_n
   END IF
Pascal
  IF bedingung_1 THEN
    anweisung_1              {einfache Anweisung oder Verbundanweisung}
  ELSE IF bedingung_2 THEN
    anweisung_2              {einfache Anweisung oder Verbundanweisung}
   ...
  ELSE
    anweisung_n;             {einfache Anweisung oder Verbundanweisung}
Beispiel:
  TYPE wtag = (montag, dienstag, mittwoch, donnerstag, freitag, 
               samstag, sonntag);
  VAR wochentag : wtag;
      konto, minimum : REAL;

  IF (wochentag = samstag) AND ( konto > minimum ) THEN
    feiern
  ELSE IF (wochentag = sonntag) AND ( konto > minimum ) THEN
    ausruhen
  ELSE
    arbeiten;
Verschachtelte IF-Anweisungen

Ein ELSE wird immer dem "nächsten" IF zugeordnet.

Beispiel:

  IF b1 THEN IF b2 THEN stmt1 ELSE stmt2;
wird interpretiert wie
  IF b1 THEN BEGIN
    IF b2 THEN
      stmt1
    ELSE
      stmt2;
  END;

Fehlerquellen:

Die IF-THEN-ELSE-Konstruktion ist nach Pascal-Verständnis ein Befehl:
Vor ELSE darf deshalb nie ein Semikolon notiert werden !

Zuordnung eines ELSE-Zweiges zum falschen IF-Zweig:
Bei komplizierten Strukturen sollte durch Verwendung von Verbundanweisungen die beabsichtigte Zuordnung explizit sichtbar gemacht werden.



P. Böhme, 06.09.1996