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