Show TOC Anfang des Inhaltsbereichs

Bedingte Verzweigungen  Dokument im Navigationsbaum lokalisieren

Bedingte Verzweigungen führen Anweisungsblöcke in Abhängigkeit vom Ergebnis eines oder mehrerer logischer Ausdrücke aus. ABAP enthält zwei Kontrollstrukturen für bedingte Verzweigungen.

Die IF-Kontrollstruktur

IF-Kontrollstrukturen können geschachtelt werden. Die Anweisungsblöcke müssen jedoch innerhalb des aktuellen Verarbeitungsblock beendet werden. Das bedeutet, dass ein IF - ENDIF-Block beispielsweise kein Ereignisschlüsselwort enthalten darf.

Beispiel

REPORT demo_flow_control_if.

DATA: text1(30) TYPE c VALUE 'This is the first text',
      text2(30) TYPE c VALUE 'This is the second text',
      text3(30) TYPE c VALUE 'This is the third text',
      string(5) TYPE c VALUE 'eco'.

IF text1 CS string.
  WRITE / 'Condition 1 is fulfilled'.
ELSEIF text2 CS string.
  WRITE / 'Condition 2 is fulfilled'.
ELSEIF text3 CS string.
  WRITE / 'Condition 3 is fulfilled'.
ELSE.
  WRITE / 'No condition is fulfilled'.
ENDIF.

Die Listenausgabe ist:

Condition 2 is fulfilled.

In diesem Beispiel ist der zweite logische Ausdruck text2 CS string wahr, weil der String 'eco' in text2enthalten ist.

Die CASE-Kontrollstruktur

CASE-Kontrollstrukturen können geschachtelt und mit IF-Kontrollstrukturen kombiniert werden. Sie müssen jedoch innerhalb des aktuellen Verarbeitungsblocks durch ENDCASEbeendet werden.

Beispiel

REPORT demo_flow_control_case.

DATA: text1   TYPE c VALUE 'X',
      text2   TYPE c VALUE 'Y',
      text3   TYPE c VALUE 'Z',
      string  TYPE c VALUE 'A'.

CASE string.
  WHEN text1 OR text2.
    WRITE: / 'String is', text1, 'OR', text2.
  WHEN text3.
    WRITE: / 'String is', text3.
  WHEN OTHERS.
    WRITE: / 'String is not', text1, text2, text3.
ENDCASE.

Die Listenausgabe ist:

String is not X Y Z

In diesem Beispiel wird der letzte Anweisungsblock nach WHEN OTHERS verarbeitet, weil der Inhalt von string , 'A', nicht mit 'X', 'Y' oder 'Z' übereinstimmt.

 

Ende des Inhaltsbereichs