SAP ABAP - Boucle imbriquée

Les instructions DO et WHILE peuvent être testées et combinées avec d'autres formes de boucle. Chaque boucle imbriquée aura son propre SY-INDEX créé et surveillé par le système.

Syntaxe

La syntaxe de la boucle DO imbriquée est -

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

Exemple

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

Le code ci-dessus produit la sortie suivante -

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

Dans cet exemple, la boucle DO externe est traitée deux fois et la boucle DO interne est traitée 10 fois, chaque fois que la boucle DO externe est traitée. Donc, dans ce cas, la boucle interne est traitée 20 fois.