COBOL - Instructions de boucle

Certaines tâches doivent être effectuées encore et encore, comme la lecture de chaque enregistrement d'un fichier jusqu'à sa fin. Les instructions de boucle utilisées dans COBOL sont -

  • Effectuer Thru
  • Effectuer jusqu'à
  • Temps d'exécution
  • Effectuer des variations

Effectuer Thru

Perform Thru est utilisé pour exécuter une série de paragraphes en donnant les noms de premier et dernier paragraphe de la séquence. Après avoir exécuté le dernier paragraphe, le contrôle est renvoyé.

Performer en ligne

Les instructions à l'intérieur de PERFORM seront exécutées jusqu'à ce que END-PERFORM soit atteint.

Syntaxe

Voici la syntaxe de l'exécution en ligne -

PERFORM 
   DISPLAY 'HELLO WORLD'
END-PERFORM.

Performances hors ligne

Ici, une instruction est exécutée dans un paragraphe, puis le contrôle est transféré vers un autre paragraphe ou une autre section.

Syntaxe

Voici la syntaxe de l'exécution hors ligne -

PERFORM PARAGRAPH1 THRU PARAGRAPH2

Example

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

PROCEDURE DIVISION.
   A-PARA.
   PERFORM DISPLAY 'IN A-PARA'
   END-PERFORM.
   PERFORM C-PARA THRU E-PARA.
   
   B-PARA.
   DISPLAY 'IN B-PARA'.
   STOP RUN.
   
   C-PARA.
   DISPLAY 'IN C-PARA'.
   
   D-PARA.
   DISPLAY 'IN D-PARA'.
   
   E-PARA.
   DISPLAY 'IN E-PARA'.

JCL pour exécuter le programme COBOL ci-dessus.

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant -

IN A-PARA
IN C-PARA
IN D-PARA
IN E-PARA
IN B-PARA

Effectuer jusqu'à

Dans 'exécuter jusqu'à', un paragraphe est exécuté jusqu'à ce que la condition donnée devienne vraie. «Avec test avant» est la condition par défaut et indique que la condition est vérifiée avant l'exécution des instructions dans un paragraphe.

Syntaxe

Voici la syntaxe de perform jusqu'à -

PERFORM A-PARA UNTIL COUNT=5

PERFORM A-PARA WITH TEST BEFORE UNTIL COUNT=5

PERFORM A-PARA WITH TEST AFTER UNTIL COUNT=5

Example

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-CNT PIC 9(1) VALUE 0. 

PROCEDURE DIVISION.
   A-PARA.
   PERFORM B-PARA WITH TEST AFTER UNTIL WS-CNT>3.
   STOP RUN.
   
   B-PARA.
   DISPLAY 'WS-CNT : 'WS-CNT.
   ADD 1 TO WS-CNT.

JCL pour exécuter le programme COBOL ci-dessus -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant -

WS-CNT : 0
WS-CNT : 1
WS-CNT : 2
WS-CNT : 3

Temps d'exécution

Dans 'perform times', un paragraphe sera exécuté le nombre de fois spécifié.

Syntaxe

Voici la syntaxe des temps d'exécution -

PERFORM A-PARA 5 TIMES.

Example

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

PROCEDURE DIVISION.
   A-PARA.
   PERFORM B-PARA 3 TIMES.
   STOP RUN.
   
   B-PARA.
   DISPLAY 'IN B-PARA'.

JCL pour exécuter le programme COBOL ci-dessus -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant -

IN B-PARA
IN B-PARA
IN B-PARA

Effectuer des variations

Lors de l'exécution de la variation, un paragraphe sera exécuté jusqu'à ce que la condition de la phrase Until devienne vraie.

Syntaxe

Voici la syntaxe de perform variant -

PERFORM A-PARA VARYING A FROM 1 BY 1 UNTIL A = 5.

Example

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-A PIC 9 VALUE 0.

PROCEDURE DIVISION.
   A-PARA.
   PERFORM B-PARA VARYING WS-A FROM 1 BY 1 UNTIL WS-A=5
   STOP RUN.
   
   B-PARA.
   DISPLAY 'IN B-PARA ' WS-A.

JCL pour exécuter le programme COBOL ci-dessus -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant -

IN B-PARA 1
IN B-PARA 2
IN B-PARA 3
IN B-PARA 4

ALLER À Déclaration

L'instruction GO TO est utilisée pour modifier le flux d'exécution dans un programme. Dans les instructions GO TO, le transfert s'effectue uniquement dans le sens avant. Il est utilisé pour quitter un paragraphe. Les différents types d'instructions GO TO utilisés sont les suivants -

Inconditionnel ALLER À

GO TO para-name.

Conditionnel ALLER À

GO TO para-1 para-2 para-3 DEPENDING ON x.

Si «x» est égal à 1, alors le contrôle sera transféré au premier paragraphe; et si «x» est égal à 2, alors le contrôle sera transféré au deuxième paragraphe, et ainsi de suite.

Example

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.

DATA DIVISION.
   WORKING-STORAGE SECTION.
   01 WS-A PIC 9 VALUE 2.
   
PROCEDURE DIVISION.
   A-PARA.
   DISPLAY 'IN A-PARA'
   GO TO B-PARA.
   
   B-PARA.
   DISPLAY 'IN B-PARA '.
   GO TO C-PARA D-PARA DEPENDING ON WS-A.
   
   C-PARA.
   DISPLAY 'IN C-PARA '.
   
   D-PARA.
   DISPLAY 'IN D-PARA '.
   STOP RUN.

JCL pour exécuter le programme COBOL ci-dessus:

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

Lorsque vous compilez et exécutez le programme ci-dessus, il produit le résultat suivant:

IN A-PARA
IN B-PARA 
IN D-PARA