
Bedingte Verzweigungen
In einer bedingten Verzweigung mit IF wird genau ein Anweisungsblock statement_block in Abhängigkeit logischer Ausdrücke log_exp ausgeführt:
IF log_exp.
statement_block
ELSEIF log_exp.
statement_block
ELSEIF ...
...
ELSE.
statement_block
ENDIF.
In einer bedingten Verzweigung mit CASE wird ein Datenobjekt dobj nacheinander mit einer Reihe anderer Datenobjekte dobj1 . . . dobjn verglichen. Bei der ersten gefundenen Übereinstimmung der Werte wird der zugehörige Anweisungsblock statement_block ausgeführt und die CASE-Struktur danach verlassen. Es wird also höchstens ein Anweisungsblock ausgeführt. Durch Angabe eines Standard-Anweisungsblocks an letzter Stelle zur Bedingung WHEN OTHERS (der ausgeführt wird, wenn bei den vorhergehenden Vergleichen keinerlei Übereinstimmung festgestellt wurde) kann erreicht werden, dass stets genau ein Anweisungsblock ausgeführt wird.
CASE dobj.
WHEN dobj1 OR dobj2 ...
statement_block
WHEN ...
...
WHEN OTHERS.
statement_block
ENDCASE.
Schleifen
In einer unbedingten Schleife wird ein Anweisungsblock statement_block zwischen den Anweisungen DO und ENDDO eingeschlossen. Optional kann mit dem Zusatz TIMES angegeben werden, wie oft der Anweisungsblock ausgeführt werden soll.
DO n TIMES.
statement_block
ENDDO.
In einer bedingten Schleife mit WHILE wird ein Anweisungsblock statement_block so lang ausgeführt, wie der logische Ausdruck log_exp wahr ist.
WHILE log_exp.
statement_block
ENDWHILE.
Innerhalb einer Schleife enthält das Systemfeld sy-index die Anzahl der bisherigen Schleifendurchläufe (einschließlich des aktuellen Durchlaufs). In geschachtelten Schleifen bezieht sich sy-index immer auf die aktuelle Schleife. Mit der Anweisung CONTINUE kann der aktuelle Schleifendurchgang vorzeitig beendet werden. Der Programmablauf wird dann mit dem nächsten Schleifendurchgang fortgesetzt. Die Anweisung CHECK log_exp stellt eine bedingte Variante von CONTINUE dar. Der Schleifendurchgang wird beendet, wenn das Ergebnis des logischen Ausdrucks log_exp nicht wahr ist. Zum vollständigen Verlassen einer Schleife dient die Anweisung EXIT. Der Programmablauf wird in diesem Fall mit der nächsten, auf die schließende Schleifenanweisung folgenden Anweisung fortgesetzt.