SAP ABAP - Loop aninhado

As instruções DO e WHILE podem ser testadas, bem como combinadas com outras formas de loop. Cada loop aninhado terá seu próprio SY-INDEX criado e monitorado pelo sistema.

Sintaxe

A sintaxe do loop DO aninhado é -

DO [n TIMES]. 
<statement block n>. 
   DO [m TIMES]. 
   <statement block m>. 
   ENDDO. 
ENDDO.

Exemplo

REPORT YS_SEP_15.
  
Data: a1 type I, b1 type I.
  
a1 = 0.  
b1 = 0.
  
Do 2 times.
  
a1 = a1 + 1.
  
Write: /'Outer', a1.
  
Do 10 times.  
b1 = b1 + 1.
  
Write: /'Inner', b1.
  
ENDDo. 
ENDDo

O código acima produz a seguinte saída -

Outer   1 
Inner   1 
Inner   2 
Inner   3 
Inner   4 
Inner   5 
Inner   6 
Inner   7 
Inner   8 
Inner   9 
Inner  10 
Outer   2 
Inner  11 
Inner  12 
Inner  13 
Inner  14 
Inner  15 
Inner  16 
Inner  17 
Inner  18 
Inner  19 
Inner  20

Neste exemplo, o loop DO externo é processado duas vezes e o loop DO interno é processado 10 vezes, cada vez que o loop DO externo é processado. Portanto, neste caso, o loop interno é processado 20 vezes.