ABAP Keyword Documentation → ABAP - Reference → Program Flow Logic → Control Structures → Loops
DO
Other versions: 7.31 | 7.40 | 7.54
Syntax
DO [n TIMES].
[statement_block]
ENDDO.
Effect
Unconditional loop. The statements DO
and ENDDO
define a control structure, which can contain a closed statement block statement_block
.
Without the addition n TIMES
, the statement block is repeated until it is exited using one for the statements for
leaving loops. In particular, the statement
EXIT
is ideal for exiting a loop completely. Within the statement block,
the system field sy-index
contains the number of previous loop passes, including the current pass. In nested loops, sy-index
always refers to the current loop.
The addition n TIMES
limits the amount of loop passes. n
is a
numerical expression position of operand type i
.
The numerical value of n
when entering the loop determines the maximum amount
of passes of the statement block. The control structure ignores changes to the value n
within the loop. If n
contains a value less than or equal to 0, the statement block is not executed.
Notes
-
If the addition
n TIMES
is not specified, the loop has to be terminated by a statement; otherwise the loop is processed endlessly. The profile parameter rdisp/max_wprun_time limits the maximum execution time of an ABAP program. If this is exceeded, the program is ended by the runtime environment. -
If
DO
loops are used to construct values or fill internal tables, they can probably be expressed more elegantly using conditional iterations withFOR
in constructor expressions. -
The obsolete addition
varying
can be used to process a sequence of data objects in the memory.
Example
Calculation and output of the first ten square numbers in a DO
loop.
DATA square TYPE i.
DO 10 TIMES.
square = ipow( base = sy-index exp = 2 ).
cl_demo_output=>write( |{ sy-index } { square }| ).
ENDDO.
cl_demo_output=>display( ).