COBOL-循环语句

本文概述

  • 直通
  • 直到执行
  • 执行时间
  • 执行变化
  • 转到声明
程序中有一些语句需要重复执行, 例如读取文件的每个记录直到其结尾。程序中的语句将按一系列顺序运行, 直到或除非流程中执行的任何语句改变了执行顺序。
对于迭代编程, 在COBOL中使用PERFORM语句。这些循环语句是:
  • 直通
  • 直到执行
  • 执行时间
  • 执行变化
直通 Perform Thru通过按顺序给出段落的名字和姓氏来执行一系列的段落。执行最后一段后, 控件将返回。
【COBOL-循环语句】根据语句的编码方式, 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=5PERFORM A-PARA WITH TEST BEFORE UNTIL COUNT=5PERFORM 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=12STOP 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-循环语句

文章图片

    推荐阅读