深入解析 COBOL 中的循环语句

每种编程语言不仅具备选择结构,还包含涉及迭代的机制。

借助这种结构,代码块可以反复执行。事实上,程序员可以通过选择特定类型的循环来亲自编写代码以实现这一点。

说到循环的类型,现代编程语言通常提供 INLINECODEbf036232 和 INLINECODEd2ef269e 循环,而另一些则提供 INLINECODE29f53a5e 结构。前者会按照程序员指定的次数运行,而后者如果设置的条件未满足,则可能会无限期运行。以下是 Python 3 中的 INLINECODE07d6c81d 循环示例:

for i in range(0,5,1):
    print(i)

如你所见,该 for 循环打印了 0 到 4 的数字,如下面的输出所示:

0
1
2
3
4

现在,让我们看看 Java 中的 while 循环:

int x = 0;
while (x < 5) {
System.out.println(x);
x++;
}

使用 Java 中的这个 while 循环,你会得到相同的输出,如下所示:

0
1
2
3
4

尽管这些迭代结构很简单,但 COBOL 也提供了类似的循环结构。不过,其语法可能与上面展示的示例大相径庭。

COBOL 中的循环语句:

简而言之,COBOL 中的循环是通过 PERFORM 动词来执行的,但它还有一些其他值得一提的功能。

在最简单的形式中,INLINECODE63d514df 仅仅将控制转移到一个只执行一次的代码块。这可以是一个段或一个节。或者,它可以使用 INLINECODE6a2b6451 结构来执行包含在多个连续段中的几个代码块。

至于作为本文讨论重点的迭代结构,你可以使用 INLINECODEca3cb5ef 动词,通过 INLINECODE00b6b1cd 循环将代码块执行设定的次数。

你还可以通过 INLINECODE5c641771 循环设置 INLINECODE472a6ca9 动词,使其在满足特定条件之前执行代码块。

最后,INLINECODE85f63e09 循环会运行一定的次数,这取决于我们使用的 INLINECODEc9acc985 值。

让我们从简单的 PERFORM 语句的语法开始吧。

简单的 PERFORM 语句:

如前所述,INLINECODEb9a04530 语句在最简单的形式下只会执行一次代码块。在这个例子中,我们使用 INLINECODE3719bc49 语句来运行 INLINECODEbeb83741 和 INLINECODE12b321ef 段中的代码。

IDENTIFICATION DIVISION.
       PROGRAM-ID. ADD-SUBTRACT-NUMBERS.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
           01 my-var PIC 99 VALUE 12.
           01 my-var2 PIC 99 VALUE 23.
           01 resultAdd PIC 999.
           01 resultSub PIC 99.
       PROCEDURE DIVISION.
       MAIN-PROCEDURE.
           PERFORM AddTwoNumbers
           PERFORM SubtractTwoNumbers
           PERFORM DisplayResult
           STOP RUN.
       AddTwoNumbers.
           COMPUTE resultAdd = my-var + my-var2.
       SubtractTwoNumbers.
           COMPUTE resultSub = my-var2 - my-var.
       DisplayResult.
           DISPLAY "Total: " resultAdd
           DISPLAY "Difference: " resultSub.
       END PROGRAM ADD-SUBTRACT-NUMBERS.

一旦操作的结果完成,DisplayResult 段就会打印结果,如下所示:

Total: 035
Difference: 11

接下来,我们将看看 INLINECODEaeaf2aff 语句的语法,以及它与仅使用一次 INLINECODE21786e90 语句有何不同。

PERFORM-THRU 语句:

当我们使用 PERFORM-THRU 语句时,目的是一次性运行多个段。当然,该语句必须提供起始段和结束段,如下面的代码所示:

IDENTIFICATION DIVISION.
       PROGRAM-ID. ADD-SUBTRACT-NUMBERS.
       DATA DIVISION.
       WORKING-STORAGE SECTION.
           01 my-var PIC 99 VALUE 12.
           01 my-var2 PIC 99 VALUE 23.
           01 resultAdd PIC 999.
           01 resultSub PIC 99.
       PROCEDURE DIVISION.
       MAIN-PROCEDURE.
           PERFORM AddTwoNumbers THRU DisplayResult
           STOP RUN.
       AddTwoNumbers.
           COMPUTE resultAdd = my-var + my-var2.
       SubtractTwoNumbers.
           COMPUTE resultSub = my-var2 - my-var.
       DisplayResult.
           DISPLAY "Total: " resultAdd
           DISPLAY "Difference: " resultSub.
       END PROGRAM ADD-SUBTRACT-NUMBERS.

如你所见,上面的 INLINECODE93781a3e 语句从执行 INLINECODEb86aeb6c 中的代码开始,直到到达 DisplayResult 段。毫无疑问:它遵循从开始到结束的段的自然顺序。

不出所料,由于我们使用了相同的输入,我们获得了相同的输出:

Total: 035
Difference: 11

这引出了 PERFORM 动词在 COBOL 中的第三种使用方式。

PERFORM TIMES 语句

这个语句是我们在 COBOL 中可以按照我们选择的次数重复执行代码块的第一种方式。如你所知,我们可以指定次数 ——

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/52997.html
点赞
0.00 平均评分 (0% 分数) - 0