
- COBOL 教程
- COBOL - 首頁
- COBOL - 概述
- COBOL - 環境設定
- COBOL - 程式結構
- COBOL - 基本語法
- COBOL - 資料型別
- COBOL - 基本動詞
- COBOL - 資料佈局
- COBOL - 條件語句
- COBOL - 迴圈語句
- COBOL - 字串處理
- COBOL - 表格處理
- COBOL - 檔案處理
- COBOL - 檔案組織
- COBOL - 檔案訪問模式
- COBOL - 檔案處理動詞
- COBOL - 子程式
- COBOL - 內部排序
- COBOL - 資料庫介面
- COBOL 有用資源
- COBOL - 問答
- COBOL - 快速指南
- COBOL - 有用資源
COBOL - 迴圈語句
有一些任務需要反覆執行,例如讀取檔案的每個記錄直到檔案末尾。COBOL 中使用的迴圈語句如下:
- 執行直到
- 執行直到
- 執行次數
- 執行變化
執行直到
Perform Thru 用於透過給出序列中第一個和最後一個段落名稱來執行一系列段落。執行完最後一個段落後,控制權將返回。
內聯執行
PERFORM 內部的語句將執行到 END-PERFORM 遇到為止。
語法
以下是內聯執行的語法:
PERFORM DISPLAY 'HELLO WORLD' END-PERFORM.
外聯執行
在這裡,一個語句在一個段落中執行,然後控制權轉移到另一個段落或節。
語法
以下是外聯執行的語法:
PERFORM PARAGRAPH1 THRU PARAGRAPH2
示例
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'.
執行上述 COBOL 程式的JCL。
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO
編譯並執行上述程式後,將產生以下結果:
IN A-PARA IN C-PARA IN D-PARA IN E-PARA IN B-PARA
執行直到
在“perform until”中,段落將執行到給定條件為真為止。“With test before”是預設條件,它表示在執行段落中的語句之前檢查條件。
語法
以下是 perform until 的語法:
PERFORM A-PARA UNTIL COUNT=5 PERFORM A-PARA WITH TEST BEFORE UNTIL COUNT=5 PERFORM A-PARA WITH TEST AFTER UNTIL COUNT=5
示例
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.
執行上述 COBOL 程式的JCL:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO
編譯並執行上述程式後,將產生以下結果:
WS-CNT : 0 WS-CNT : 1 WS-CNT : 2 WS-CNT : 3
執行次數
在“perform times”中,段落將執行指定的次數。
語法
以下是 perform times 的語法:
PERFORM A-PARA 5 TIMES.
示例
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. PROCEDURE DIVISION. A-PARA. PERFORM B-PARA 3 TIMES. STOP RUN. B-PARA. DISPLAY 'IN B-PARA'.
執行上述 COBOL 程式的JCL:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO
編譯並執行上述程式後,將產生以下結果:
IN B-PARA IN B-PARA IN B-PARA
執行變化
在 perform varying 中,段落將執行到 Until 子句中的條件為真為止。
語法
以下是 perform varying 的語法:
PERFORM A-PARA VARYING A FROM 1 BY 1 UNTIL A = 5.
示例
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.
執行上述 COBOL 程式的JCL:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO
編譯並執行上述程式後,將產生以下結果:
IN B-PARA 1 IN B-PARA 2 IN B-PARA 3 IN B-PARA 4
GO TO 語句
GO TO 語句用於更改程式中的執行流程。在 GO TO 語句中,轉移僅向前進行。它用於退出段落。使用的不同型別的 GO TO 語句如下:
無條件 GO TO
GO TO para-name.
條件 GO TO
GO TO para-1 para-2 para-3 DEPENDING ON x.
如果“x”等於 1,則控制權將轉移到第一個段落;如果“x”等於 2,則控制權將轉移到第二個段落,依此類推。
示例
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.
執行上述 COBOL 程式的JCL
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO
編譯並執行上述程式後,將產生以下結果
IN A-PARA IN B-PARA IN D-PARA
廣告