Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

IF-Anweisung

&pagelevel(4)&pagelevel

Funktion

Die IF-Anweisung bewirkt, dass eine Bedingung (siehe unter „Bedingungen") ausgewertet wird. Die nachfolgende Aktion des Programmes hängt davon ab, ob die Bedingung wahr oder falsch ist.

Format 1


IF bedingung THEN anweisung-1 [ELSE anweisung-2]

   END-IF


Format 2


IF bedingung THEN {anweisung-1 | NEXT SENTENCE} [ELSE {anweisung-2 | NEXT SENTENCE}]


Syntaxregeln

  1. anweisung-1 und anweisung-2 können aus einer oder mehreren unbedingten oder bedingten Anweisung(en) bestehen.

  2. Eine IF-Anweisung mit NEXT SENTENCE-Angabe darf nicht in anweisung-1 bzw. anweisung-2 einer IF-Anweisung vom Format 1 stehen, die unmittelbar mit END-IF abgeschlossen wird.

Allgemeine Regeln

  1. anweisung-1 und/oder anweisung-2 können eine IF-Anweisung enthalten. In diesem Fall spricht man von „geschachtelter IF-Anweisung“.

  2. Der Gültigkeitsbereich der IF-Anweisung kann wie folgt begrenzt werden:

    1. durch END-IF auf derselben Schachtelungsebene

    2. mit einem Punkt

    3. bei Schachtelung mit einer ELSE-Angabe, die zu einer IF-Anweisung auf höherer Schachtelungsebene gehört.

  3. IF-Anweisungen innerhalb von IF-Anweisungen werden von links nach rechts als Kombinationen von IF, ELSE und END-IF betrachtet. Daher wird bei jedem auftretenden ELSE angenommen, dass es sich auf das unmittelbar vorausgegangene IF bezieht, dem noch kein ELSE oder END-IF zugeordnet ist.

  4. Eine IF-Anweisung wird folgendermaßen ausgeführt:

    1. Ist die Bedingung wahr und anweisung-1 angegeben, wird mit der ersten Anweisung von anweisung-1 fortgesetzt. Wird dabei ein Prozedursprung oder eine Bedingungsanweisung ausgeführt, die einen expliziten Übergang der Steuerung bewirkt, erfolgt dieser Übergang gemäß den Regeln für diese Anweisung. Nach Beendigung der Ausführung von anweisung-1 wird ELSE, falls angegeben, ignoriert, und die Steuerung geht zum Ende der IF-Anweisung über.

    2. Ist die Bedingung wahr und statt anweisung-1 NEXT SENTENCE angegeben, wird ELSE, falls angegeben, ignoriert und der Ablauf bei der nächsten ausführbaren Anweisung fortgesetzt.

    3. Ist die Bedingung falsch und anweisung-2 angegeben, wird anweisung-1 bzw. NEXT SENTENCE ignoriert. Es wird mit der ersten Anweisung von anweisung-2 fortgesetzt. Wird dabei ein Prozedursprung oder eine Bedingungsanweisung ausgeführt, die einen expliziten Übergang der Steuerung bewirkt, erfolgt dieser Übergang gemäß den Regeln für diese Anweisung. Nach Beendigung der Ausführung von anweisung-2 geht die Steuerung zum Ende der IF-Anweisung über.

    4. Ist die Bedingung falsch und ELSE nicht angegeben, wird anweisung-1 ignoriert, und die Steuerung geht zum Ende der IF-Anweisung über.

    5. Ist die Bedingung falsch und ELSE NEXT SENTENCE angegeben, wird anweisung-1 ignoriert und der Ablauf mit dem nächsten ausführbaren Programmsatz fortgesetzt.

Beispiel 8-42

IF A = B 
THEN
  anweisung-1
END-IF
anweisung-2.

Wenn A = B wahr ist, werden anweisung-1 und anweisung-2 ausgeführt.

Wenn A = B falsch ist, wird nur anweisung-2 ausgeführt.

Beispiel 8-43

IF A = B 
THEN
  anweisung-1 
ELSE 
  anweisung-2
END-IF
anweisung-3.

Wenn A = B wahr ist, werden anweisung-1 und anweisung-3 ausgeführt.

Wenn A = B falsch ist, werden anweisung-2 und anweisung-3 ausgeführt.

Beispiel 8-44

IF A = B
THEN
  CONTINUE
ELSE 
  anweisung-1 
END-IF
anweisung-2.

Wenn A = B wahr ist, wird anweisung-2 ausgeführt.

Wenn A = B falsch ist, werden anweisung-1 und anweisung-2 ausgeführt.

Beispiel 8-45

|-> IF MAENNLICH
|   |-> IF VERHEIRATET
|   |      ADD 1 TO MAENNL-VERHEIRATET
|   |-> ELSE
|   |   |-> IF GESCHIEDEN
|   |   |      ADD 1 TO MAENNL-GESCH
|   |   |-> ELSE
|   |   |      ADD 1 TO MAENNL-LEDIG
|   |   |-> END-IF
|   |-> END-IF
|-> ELSE
|      ADD 1 TO WEIBLICH
|-> END-IF
    nächste Anweisung
Dies ist ein Strukturbeispiel für eine geschachtelte IF-Anweisung. Die Pfeile bezeichnen die IF-, ELSE- und END-IF-Zuordnungen.