SAP ABAP - Ciclo annidato

Le istruzioni DO e WHILE possono essere testate e combinate con altre forme di loop. Ogni ciclo annidato avrà il proprio SY-INDEX creato e monitorato dal sistema.

Sintassi

La sintassi per il ciclo DO annidato è:

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

Esempio

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

Il codice precedente produce il seguente output:

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

In questo esempio, il ciclo DO esterno viene elaborato due volte e il ciclo DO interno viene elaborato 10 volte, ogni volta che viene elaborato il ciclo DO esterno. Quindi, in questo caso, il ciclo interno viene elaborato 20 volte.