个性化阅读
专注于IT技术分析

COBOL-循环语句

本文概述

程序中有一些语句需要重复执行, 例如读取文件的每个记录直到其结尾。程序中的语句将按一系列顺序运行, 直到或除非流程中执行的任何语句改变了执行顺序。

对于迭代编程, 在COBOL中使用PERFORM语句。这些循环语句是:

  • 直通
  • 直到执行
  • 执行时间
  • 执行变化

直通

Perform Thru通过按顺序给出段落的名字和姓氏来执行一系列的段落。执行最后一段后, 控件将返回。

根据语句的编码方式, PERFORM主要分为两种类型:

  • 内联执行
  • 大纲执行

让我们看看它们之间的区别:

排队 大纲
INLINE在PERFORM和END-PERFORM之间执行一系列语句或语句块。 OUTLINE Perform用于执行一系列在单独的部分或段落中编码的语句或语句块, 这些语句或语句块未与PERFORM语句一起编码。
这不需要执行任何需要编码的单独的PARAGRAPH或SECTION。 它需要一个单独的PARAGRAPH或SECTION, 需要对要执行的语句进行编码。
在这种情况下, 必须使用范围终止符(END-PERFORM)。 在这种情况下, 不需要范围终止符(END-PERFORM)。
语法:-以下是INLINE PERFORM的语法:PERFORM DISPLAY’HELLO WORLD’END-PERFORM。 语法:-以下是OUTLINE PERFORM的语法:PERFORM PARAGRAPH1 THRU PARAGRAPH2

例子:

让我们看一个PERFORM THRU语句的例子:

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循环语句

直到执行

语句块或段落/节将在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

例子:

让我们看一个PERFORM UNTIL语句的例子:

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循环语句

执行时间

PERFORM TIMES主要用于以指定的次数重复执行语句或段落/节的块。

语法如下:

以下是PERFORM TIMES的语法:

PERFORM A-PARA 5 TIMES.

例子:

让我们看一个PERFORM TIMES的例子:

IDENTIFICATION DIVISION.
           PROGRAM-ID. HELLO.

       PROCEDURE DIVISION.
           A-PARA.
           PERFORM B-PARA 3 TIMES.
           STOP RUN.
   
           B-PARA.
           DISPLAY 'IN B-PARA'.

输出如下:

当你编译并执行上述程序时, 它将显示以下输出:

COBOL循环语句

执行变化

语句或段落/节的块将在PERFORM VARYING中执行, 直到条件在UNTIL短语中变为真。

语法如下:

以下是PERFORM VARYING的语法:

PERFORM A-PARA VARYING A FROM 1 BY 1 UNTIL A = 5.

例子:

让我们看一个PERFORM VARYING的例子:

IDENTIFICATION DIVISION.
           PROGRAM-ID. HELLO.

       DATA DIVISION.
           WORKING-STORAGE SECTION.
             01 WS-A PIC 9(2) VALUE 0.

           PROCEDURE DIVISION.
            A-PARA.
         PERFORM B-PARA VARYING WS-A FROM 2 BY 2 UNTIL WS-A=12
           STOP RUN.

            B-PARA.
               DISPLAY 'IN B-PARA ' WS-A.

输出如下:

当你编译并执行上述程序时, 它将显示以下输出:

COBOL循环语句

转到声明

在程序中, GO TO语句更改执行流程。在此语句中, 控制仅在向前方向上转移。它用于退出程序。各种类型的GO TO语句如下:

无条件转到

以下是无条件转到的语法:

GO TO para-name.

有条件转到

以下是有条件转到的语法:

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

在这里, 如果x = 1, 则控件将转移到第一段, 如果x = 2, 则控件将转移到第二段, 依此类推。

例子:

让我们来看一个GO To语句的示例:

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循环语句

赞(0)
未经允许不得转载:srcmini » COBOL-循环语句

评论 抢沙发

评论前必须登录!