Aller au contenu

LEAVE

Quitter

Leave

En bref

La commande LEAVE termine le traitement des commandes dans la boucle DOWHILE, DOUNTIL ou DOFOR correspondante et passe le contrôle à la première commande qui suit la commande ENDDO associée.

Syntaxe minimale

LEAVE

Paramètres

Astuce : dans une session 5250, tapez LEAVE puis F4 pour l'invite de saisie, et F1 sur un paramètre pour son aide.

Aide IBM i de la commande

Texte du F1, IBM i 7.5 en français (bibliothèque QSYS)

Où s'exécute :

  • Programme batch (*BPGM)
  • Programme interactif (*IPGM)
Compatible multitâche : Oui

La commande LEAVE termine le traitement des commandes dans la boucle DOWHILE, DOUNTIL ou DOFOR correspondante et passe le contrôle à la première commande qui suit la commande ENDDO associée.

La séquence de commandes suivante illustre ce flot.

L1:     DOWHILE &LGL1
        ...
L2:     DOWHILE &LGL2
        ...
        IF &LGL3 (LEAVE CMDLBL(L1))
        IF &LGL4 LEAVE
        ...
        ENDDO
        /* Ici si le résultat de l'évaluation de &LGL4 est vrai */
        ...
        ENDDO
        /* Ici si le résultat de l'évaluation de &LGL3 est vrai */
        ...

Restrictions :

  • Cette commande est admise uniquement dans un programme CL ou une procédure CL ILE.
  • Cette commande est admise uniquement à l'intérieur d'un groupe de commandes DOWHILE, DOUNTIL ou DOFOR.

Paramètres

Mot-clé Description Valeurs possibles Remarques
CMDLBL Label de la commande Nom simple, *CURRENT Facultatif, positionnel 1

Label de la commande (CMDLBL)

Le label doit se trouver au sein du même programme que la commande LEAVE et s'appliquer à un groupe actif de commandes DOWHILE, DOUNTIL ou DOFOR. Vous ne pouvez pas indiquer le label à l'aide d'une variable CL.

*CURRENT
Laisse la boucle la plus centrale à proximité de cette commande LEAVE.
nom-simple
Indiquez le nom de label de la commande DOWHILE, DOUNTIL, or DOFOR située à proximité dont le traitement prend fin.

Exemples

Exemple 1 : LEAVE - Boucle DOFOR simple

DCL   VAR(&INT)  TYPE(*INT)  LEN(2)
DCL   VAR(&NAME)  TYPE(*CHAR)  LEN(10)
 :
DOFOR   VAR(&INT)  FROM(0)  TO(10)
 :  (groupe de commandes CL)
 IF   COND(&NAME *EQ *NONE)   THEN(LEAVE)
 :  (groupe de commandes CL)
ENDDO

La commande LEAVE interrompt le traitement du groupe DOFOR actif et le traitement se poursuit avec la commande qui suit ENDDO.

Exemple 2 : LEAVE avec boucles imbriquées

DCL   VAR(&INT)  TYPE(*INT)  LEN(2)
DCL   VAR(&NAME)  TYPE(*CHAR)  LEN(10)
DCL   VAR(&LGL)  TYPE(*LGL)  VALUE('1')      /* Vrai */
 :
LOOP1: DOFOR   VAR(&INT)  FROM(0)  TO(10)
 :  (groupe de commandes CL)
 LOOP2: DOUNTIL   COND(&LGL)
   :  (groupe de commandes CL)
   IF   COND(&NAME *EQ *NONE)  THEN(LEAVE  CMDLBL(LOOP1))
   :   (groupe de commandes CL)
 ENDDO /* DOUNTIL */
 :   (groupe de commandes CL)
ENDDO /* DOFOR */

La commande LEAVE interrompt le traitement des groupes actifs DOUNTIL et DOFOR et le traitement continue avec la commande qui suit la commande ENDDO correspondant à la commande DOFOR.

© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.