A- Définition
Les boucles sont des structures qui nous permettent de répéter une série d'instructions plusieurs fois. Il existe plusieurs types de boucles : while , do… loop . Certaines sont plus adaptées que d'autres selon les cas.
B- La boucle WHILE est une structure de contrôle permettant d'exécuter un ensemble d'instructions de façon répétée sur la base d'une condition booléenne. La boucle while peut être considérée comme une répétition de l'instruction if.
While [Condition_Logique] (doit être vrai pour rentrer dans la boucle).
[Bloc d'instruction].
endwhile.
C- La boucle DO : permet de répéter l'exécution d'une séquence d'instructions, soit un nombre determiner de fois ou de sortir de la boucle avec avec EXIT que l'on conditionne.
DO [expression] TIMES .
[Bloc d'instruction].
ENDDO.
ou
DO.
if [Condition_Logique] .
EXIT. "pour sortir de la boucle DO
endif.
ENDDO.
D - La boucle LOOP AT itab exécute le bloc d'instructions entre LOOP et ENDLOOP une fois pour chaque ligne lue.
La réponse de sortie résultat détermine comment et où le contenu de la rangée sont lus.
La clé de table avec laquelle la boucle est exécutée peut être déterminée dans cond . Soit toutes les lignes sont lues, soit des conditions cond sont spécifiées pour restreindre les lignes lues.
AT ... ENDAT peut être utilisé pour définir des structures de contrôle pour le traitement au niveau du groupe .
LOOP AT itab [result] [cond]. ... [AT ... ... ENDAT.] ... ENDLOOP.
avec [result] :
... { INTO wa }|{ ASSIGNING <fs> [CASTING]}|{ REFERENCE INTO dref }|{ TRANSPORTING NO FIELDS } ..
avec [cond] :
... [USING KEY keyname][FROM idx1][TO idx2][WHERE log_exp|(cond_syntax)] ...
Détail [AT ... ENDAT]
LOOP AT itab result [cond]. [AT FIRST. ... ENDAT.][AT NEW comp1. ... ENDAT. [AT NEW comp2. ... ENDAT. [...]]][ ... ][[[...] AT END OF comp2. ... ENDAT.] AT END OF comp1. ... ENDAT.][AT LAST. ... ENDAT.] ENDLOOP.
autres exemples :
- Vérification des select-option, pour vérifier les valeurs saisies :
Loop at S_VENDO.
use S_VENDO-low
endloop.
- Lire et/ou modifier les valeurs de l'écran:
LOOP AT SCREEN INTO wa. ... ENDLOOP.
des exemples... du code...
Steeven