COBOL - Tuyên bố vòng lặp
Có một số tác vụ cần được thực hiện lặp đi lặp lại như đọc từng bản ghi của tệp cho đến khi kết thúc. Các câu lệnh lặp được sử dụng trong COBOL là:
- Thực hiện Thru
- Thực hiện cho đến khi
- Thời gian thực hiện
- Thực hiện thay đổi
Thực hiện Thru
Thực hiện Thru được sử dụng để thực hiện một chuỗi đoạn văn bằng cách đặt tên đoạn văn đầu tiên và cuối cùng trong chuỗi. Sau khi thực hiện đoạn cuối cùng, điều khiển được trả lại.
Thực hiện trong dòng
Các câu lệnh bên trong PERFORM sẽ được thực hiện cho đến khi đạt được END-PERFORM.
Cú pháp
Sau đây là cú pháp của biểu diễn nội dòng:
PERFORM
DISPLAY 'HELLO WORLD'
END-PERFORM.
Thực hiện ngoài dòng
Ở đây, một câu lệnh được thực hiện trong một đoạn và sau đó điều khiển được chuyển sang đoạn hoặc phần khác.
Cú pháp
Sau đây là cú pháp của Out-of-line performance:
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 để thực hiện chương trình COBOL trên.
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Khi bạn biên dịch và thực thi chương trình trên, nó tạo ra kết quả sau:
IN A-PARA
IN C-PARA
IN D-PARA
IN E-PARA
IN B-PARA
Thực hiện cho đến khi
Trong 'thực hiện cho đến khi', một đoạn được thực hiện cho đến khi điều kiện đã cho trở thành đúng. 'With test before' là điều kiện mặc định và nó chỉ ra rằng điều kiện được kiểm tra trước khi thực hiện các câu lệnh trong một đoạn văn.
Cú pháp
Sau đây là cú pháp của biểu diễn cho đến khi -
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 để thực hiện chương trình COBOL ở trên -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Khi bạn biên dịch và thực thi chương trình trên, nó tạo ra kết quả sau:
WS-CNT : 0
WS-CNT : 1
WS-CNT : 2
WS-CNT : 3
Thời gian thực hiện
Trong 'thời gian thực hiện', một đoạn văn sẽ được thực hiện theo số lần được chỉ định.
Cú pháp
Sau đây là cú pháp của thời gian thực hiện:
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 để thực hiện chương trình COBOL ở trên -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Khi bạn biên dịch và thực thi chương trình trên, nó tạo ra kết quả sau:
IN B-PARA
IN B-PARA
IN B-PARA
Thực hiện thay đổi
Khi thực hiện khác nhau, một đoạn văn sẽ được thực hiện cho đến khi điều kiện trong cụm từ Until trở thành true.
Cú pháp
Sau đây là cú pháp thực hiện thay đổi:
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 để thực hiện chương trình COBOL ở trên -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Khi bạn biên dịch và thực thi chương trình trên, nó tạo ra kết quả sau:
IN B-PARA 1
IN B-PARA 2
IN B-PARA 3
IN B-PARA 4
ĐI ĐẾN Tuyên bố
Câu lệnh GO TO được sử dụng để thay đổi luồng thực thi trong một chương trình. Trong câu lệnh ĐI ĐẾN, chuyển chỉ đi theo hướng về phía trước. Nó được sử dụng để thoát khỏi một đoạn văn. Các loại câu lệnh GO TO khác nhau được sử dụng như sau:
ĐI ĐẾN vô điều kiện
GO TO para-name.
ĐI ĐẾN có điều kiện
GO TO para-1 para-2 para-3 DEPENDING ON x.
Nếu 'x' bằng 1, thì điều khiển sẽ được chuyển đến đoạn đầu tiên; và nếu 'x' bằng 2, thì điều khiển sẽ được chuyển sang đoạn thứ hai, v.v.
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 để thực hiện chương trình COBOL ở trên:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Khi bạn biên dịch và thực thi chương trình trên, nó tạo ra kết quả sau:
IN A-PARA
IN B-PARA
IN D-PARA