COBOL - Schleifenanweisungen

Es gibt einige Aufgaben, die immer wieder erledigt werden müssen, z. B. das Lesen jedes Datensatzes einer Datei bis zu ihrem Ende. Die in COBOL verwendeten Schleifenanweisungen sind -

  • Durchführen
  • Durchführen bis
  • Zeiten durchführen
  • Führen Sie eine Variation durch

Durchführen

Perform Thru wird verwendet, um eine Reihe von Absätzen auszuführen, indem der erste und der letzte Absatzname in der Sequenz angegeben werden. Nach dem Ausführen des letzten Absatzes wird das Steuerelement zurückgegeben.

Inline durchführen

Anweisungen innerhalb der PERFORM werden ausgeführt, bis END-PERFORM erreicht ist.

Syntax

Es folgt die Syntax von Inline Line Perform -

PERFORM 
   DISPLAY 'HELLO WORLD'
END-PERFORM.

Out-of-Line-Perform

Hier wird eine Anweisung in einem Absatz ausgeführt und dann die Steuerung auf einen anderen Absatz oder Abschnitt übertragen.

Syntax

Es folgt die Syntax von Out-of-Line Perform -

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 um das obige COBOL-Programm auszuführen.

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

Wenn Sie das obige Programm kompilieren und ausführen, wird das folgende Ergebnis erzielt:

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

Durchführen bis

In 'Durchführen bis' wird ein Absatz ausgeführt, bis die angegebene Bedingung erfüllt ist. 'Mit Test vor' ist die Standardbedingung und zeigt an, dass die Bedingung vor der Ausführung von Anweisungen in einem Absatz überprüft wird.

Syntax

Es folgt die Syntax von perform bis -

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 um das obige COBOL-Programm auszuführen -

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

Wenn Sie das obige Programm kompilieren und ausführen, wird das folgende Ergebnis erzielt:

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

Zeiten durchführen

In 'Durchführungszeiten' wird ein Absatz so oft ausgeführt, wie angegeben.

Syntax

Es folgt die Syntax der Aufführungszeiten -

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 um das obige COBOL-Programm auszuführen -

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

Wenn Sie das obige Programm kompilieren und ausführen, wird das folgende Ergebnis erzielt:

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

Führen Sie eine Variation durch

Beim Variieren der Leistung wird ein Absatz ausgeführt, bis die Bedingung in Bis-Phrase wahr wird.

Syntax

Im Folgenden finden Sie die Syntax zum Variieren der Leistung -

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 um das obige COBOL-Programm auszuführen -

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

Wenn Sie das obige Programm kompilieren und ausführen, wird das folgende Ergebnis erzielt:

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

GO TO-Anweisung

Die Anweisung GO TO wird verwendet, um den Ausführungsfluss in einem Programm zu ändern. In GO TO-Anweisungen erfolgt die Übertragung nur in Vorwärtsrichtung. Es wird verwendet, um einen Absatz zu verlassen. Folgende Arten von GO TO-Anweisungen werden verwendet:

Bedingungslos GEHE ZU

GO TO para-name.

Bedingt GEHE ZU

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

Wenn 'x' gleich 1 ist, wird die Steuerung auf den ersten Absatz übertragen. und wenn 'x' gleich 2 ist, wird die Kontrolle auf den zweiten Absatz übertragen und so weiter.

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 um das obige COBOL-Programm auszuführen:

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

Wenn Sie das obige Programm kompilieren und ausführen, wird das folgende Ergebnis erzielt:

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