
Schleifen in ABAP werden in einem mehrfach ausgeführten Quelltextblock definiert.
Die einfachste Form von Schleifen besteht aus einem Quelltextblock, der von den Anweisungen DO – ENDDO umgeben ist. Ohne weitere Maßnahmen könnten diese Anweisungen zu einer Endlosschleife führen, die durch eine der folgenden Möglichkeiten vermieden werden muss:
- Angegebene Anzahl von Schleifen
- Durch Erweiterung der DO -Anweisung mit einem Integer-Ausdruck gefolgt vom Schlüsselwort TIMES kann explizit angegeben werden, wie oft der Quelltextblock verarbeitet werden soll. Der ganzzahlige Ausdruck kann genauso einfach wie ein Zahlenliteral sein, es können aber auch arithmetische Berechnungen verwendet werden. Wenn der Wert des Ausdrucks gleich 0 ist, wird der Quelltextblock zwischen DO und ENDDO überhaupt nicht ausgeführt und das Programm fährt sofort mit dem Quelltext hinter ENDDO fort.
- Abbruch aufgrund einer logischen Bedingung
- Sie können eine Schleife jederzeit mit der Anweisung EXIT abbrechen. Das Programm wird dann mit dem Quelltext nach ENDDO fortgesetzt. Beachten Sie, dass außerhalb der Schleife EXIT eine andere Wirkung hat. Dort bricht es die Verarbeitung des aktuellen Verarbeitungsblocks ab, z.B. der aktuellen Methode.
In der Regel wird EXIT von IF und ENDIF umgeben, um die Schleife abhängig von einer Abbruchbedingung zu beenden. Beachten Sie, dass solche Schleifen in Endlosschleifen umgewandelt werden können, wenn die Abbruchbedingung nie wahr ist.
Natürlich ist es möglich, die beiden Techniken zu kombinieren, d.h. die Anzahl der Schleifen explizit anzugeben und die Schleife dann mit EXIT zu verlassen. Daher wird die Anzahl der Schleifen zu einer maximalen Anzahl, die zur Laufzeit möglicherweise nicht erreicht wird.
Im Quelltextblock zwischen DO und ENDDO können Lesezugriffe auf das eingebaute ABAP-Datenobjekt SY-INDEX implementiert werden. Diese Integer-Variable dient als Schleifenzähler, d.h. die ABAP-Laufzeit erhöht die Variable zu Beginn jeder neuen Schleife um eins.
Die eingebaute ABAP-Variable SY-TABIX kann einen ähnlichen Zweck für Schleifen erfüllen. Beachten Sie jedoch, dass SY-TABIX kein Zähler ist, sondern die Position der Tabellenzeile identifiziert, die in der aktuellen Schleife verarbeitet wird.