Bedingte Verzweigung: Implementierung

Bei der bedingten Verzweigung handelt es sich um eine Kontrollstruktur, mit der Sie die Ausführung von Code von logischen Bedingungen abhängig machen können.
Die häufigste bedingte Verzweigung besteht aus einem Schlüsselwortpaar IF und ENDIF. Der ABAP-Quelltextblock zwischen IF und ENDIF wird nur ausgeführt, wenn die Bedingung hinter IF erfüllt ist.
Sie können weitere Quelltextblöcke hinzufügen, die IF erweitern. ENDIF -Struktur durch Verwendung des Schlüsselworts ELSE und eine beliebige Anzahl von Blöcken mit dem Schlüsselwort ELSEIF. Durch das Hinzufügen des Schlüsselworts ELSE wird sichergestellt, dass immer genau einer der ABAP-Quelltextblöcke ausgeführt wird. Wenn ELSE fehlt, darf keiner der ABAP-Quelltextblöcke ausgeführt werden.
Jeder IF . . ENDIF-Schlüsselwörter sind obligatorisch, und jedes IF muss ein ENDIF haben.
Der ABAP-Quelltextblock, der ausgeführt wird, lautet wie folgt:
- Zuerst wird die IF-Bedingung ausgewertet. Falls erfüllt, wird der zugehörige ABAP-Quelltextblock ausgeführt, und das Programm wird nach dem ENDIF. fortgesetzt.
Nur wenn die IF-Bedingung nicht erfüllt ist, wird die Bedingung nach dem ersten ELSEIF ausgewertet. Wenn erfüllt, wird der zugehörige Quelltextblock ausgeführt, und das Programm wird nach ENDIF fortgesetzt.
Dies geschieht nacheinander für alle ELSEIF-Bedingungen. Wenn keine der Bedingungen erfüllt ist und die Struktur ELSE enthält, wird der ABAP-Quelltextblock hinter ELSE ausgeführt. Andernfalls wird keiner der ABAP-Quelltextblöcke ausgeführt.
Hinweis
Logische Bedingungen

Logische Bedingungen sind eine Kombination aus Vergleichen, logischen Operationen, Ausdrücken und Funktionen, die das Laufzeitsystem auswertet, um zu entscheiden, ob die Bedingung wahr oder falsch ist.
Der häufigste Anwendungsfall für logische Bedingungen ist nach den Schlüsselwörtern IF oder ELSEIF in einem IF . . . ENDIF-Struktur.
Das erste Beispiel (in der obigen Abbildung) ist ein einfacher Vergleich: Die Bedingung ist wahr, wenn die beiden Datenobjekte x und y den gleichen Wert haben.
Das zweite Beispiel (in der obigen Abbildung) ist etwas ausgefeilter: Entweder ist der Wert von x größer oder gleich y und kleiner als das Doppelte des Werts von y, oder er ist kleiner oder gleich y und größer als das Doppelte des Werts von y.
Im dritten Beispiel (in obiger Abbildung) wird die arithmetische Funktion abs( ) und der logische Ausdruck BETWEEN <expression 1> AND <expression 2>. verwendet. Die Bedingung ist wahr, wenn der absolute Wert von x zwischen dem absoluten Wert von y und dem absoluten Wert von zwei Mal y liegt.
Für einfache Wertevergleiche können Sie die Operatoren =, <>, >, <, >=, and <=verwenden. Sie können nicht nur die Werte von Datenobjekten, sondern auch viele andere Ausdrücke vergleichen, wie der arithmetische Ausdruck 2 * y im obigen Beispiel.
Notiz
Operatoren und Semantiken
| Operator | Bedeutung |
|---|---|
| AND | Wird verwendet, um mehrere logische Ausdrücke zu verknüpfen. Der daraus entstehende neue logische Ausdruck ist nur dann wahr, wenn auch alle verknüpften logischen Ausdrücke wahr sind. |
| OR | Wird verwendet, um mehrere logische Ausdrücke zu verknüpfen, um einen neuen logischen Ausdruck anzulegen, der wahr ist, wenn mindestens einer der logischen Ausdrücke wahr ist. |
| NOT | Die Negation eines logischen Ausdrucks mit NOT erzeugt einen neuen logischen Ausdruck, der falsch ist, wenn der logische Ausdruck wahr ist und umgekehrt. |
Sie können die Operatoren AND und OR verwenden, um logische Ausdrücke zu kombinieren, und den Operator NOT, um einen Ausdruck zu negieren. Ohne Klammern bindet NOT stärker als AND und AND stärker als OR.
ABAP kennt einige spezielle logische Ausdrücke:
- <data object> IS INITIAL ist wahr, wenn <data object>seinen typspezifischen Wert enthält
- <data object> IS NOT INITIAL ist wahr, wenn <data object> einen Wert enthält, der vom typspezifischen Initialwert abweicht.
- <data object> ZWISCHEN <expression 1> UND <expression 2>
Einige spezielle ABAP-Funktionen sind Prädikatfunktionen. Dies bedeutet, dass sie selbst logische Bedingungen sind. Beispielsweise ist Contains( ) eine Funktion, die zeichenartige Werte vergleicht.
