SAP ABAP: bucle anidado

Las sentencias DO y WHILE pueden probarse y combinarse con otras formas de bucle. Cada bucle anidado tendrá su propio SY-INDEX creado y supervisado por el sistema.

Sintaxis

La sintaxis para el bucle DO anidado es:

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

Ejemplo

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

El código anterior produce la siguiente salida:

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

En este ejemplo, el ciclo OD externo se procesa dos veces y el ciclo DO interno se procesa 10 veces, cada vez que se procesa el ciclo DO externo. Entonces, en este caso, el bucle interno se procesa 20 veces.