COBOL - Pernyataan Loop
Ada beberapa tugas yang perlu dilakukan berulang kali seperti membaca setiap catatan file hingga akhirnya. Pernyataan loop yang digunakan dalam COBOL adalah -
- Lakukan Melalui
- Lakukan Sampai
- Lakukan Kali
- Lakukan Variasi
Lakukan Melalui
Perform Thru digunakan untuk mengeksekusi rangkaian paragraf dengan memberikan nama paragraf pertama dan terakhir secara berurutan. Setelah menjalankan paragraf terakhir, kontrol dikembalikan.
Performa In-line
Pernyataan di dalam PERFORM akan dijalankan hingga END-PERFORM tercapai.
Sintaksis
Berikut adalah sintaks In-line perform -
PERFORM
DISPLAY 'HELLO WORLD'
END-PERFORM.
Performa Out-of-line
Di sini, pernyataan dieksekusi dalam satu paragraf dan kemudian kontrol dipindahkan ke paragraf atau bagian lain.
Sintaksis
Berikut ini adalah sintaks dari 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 untuk menjalankan program COBOL di atas.
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -
IN A-PARA
IN C-PARA
IN D-PARA
IN E-PARA
IN B-PARA
Lakukan Sampai
Dalam 'perform sampai', sebuah paragraf dieksekusi hingga kondisi yang diberikan menjadi true. 'With test before' adalah kondisi default dan ini menunjukkan bahwa kondisi tersebut diperiksa sebelum eksekusi pernyataan dalam paragraf.
Sintaksis
Berikut ini adalah sintaks perform hingga -
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 untuk menjalankan program COBOL di atas -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -
WS-CNT : 0
WS-CNT : 1
WS-CNT : 2
WS-CNT : 3
Lakukan Kali
Dalam 'perform times', paragraf akan dieksekusi sesuai jumlah yang ditentukan.
Sintaksis
Berikut ini adalah sintaks waktu kinerja -
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 untuk menjalankan program COBOL di atas -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -
IN B-PARA
IN B-PARA
IN B-PARA
Lakukan Variasi
Dalam melakukan variasi, sebuah paragraf akan dieksekusi hingga kondisi di frase sampai menjadi benar.
Sintaksis
Berikut ini adalah sintaks performa yang bervariasi -
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 untuk menjalankan program COBOL di atas -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -
IN B-PARA 1
IN B-PARA 2
IN B-PARA 3
IN B-PARA 4
Pernyataan GO TO
Pernyataan GO TO digunakan untuk mengubah aliran eksekusi dalam suatu program. Dalam pernyataan GO TO, transfer hanya berjalan ke arah depan. Ini digunakan untuk keluar dari paragraf. Berbagai jenis pernyataan GO TO yang digunakan adalah sebagai berikut -
PERGI tanpa syarat
GO TO para-name.
PERGI bersyarat
GO TO para-1 para-2 para-3 DEPENDING ON x.
Jika 'x' sama dengan 1, maka kontrol akan dialihkan ke paragraf pertama; dan jika 'x' sama dengan 2, maka kontrol akan dialihkan ke paragraf kedua, begitu seterusnya.
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 untuk menjalankan program COBOL di atas:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut:
IN A-PARA
IN B-PARA
IN D-PARA