Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Program Flow Logic →  Control Structures →  Loops 


Short Reference

Other versions: 7.31 | 7.40 | 7.54


DO [n TIMES]. 


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.


  • 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 with FOR in constructor expressions.
  • The obsolete addition varying can be used to process a sequence of data objects in the memory.


Calculation and output of the first ten square numbers in a DO loop.

DATA square TYPE i. 

  square = ipow( base = sy-index exp = 2 ). 
  cl_demo_output=>write( |{ sy-index } { square }| ). 
cl_demo_output=>display( ).