每种编程语言不仅具备选择结构,还包含涉及迭代的机制。
借助这种结构,代码块可以反复执行。事实上,程序员可以通过选择特定类型的循环来亲自编写代码以实现这一点。
说到循环的类型,现代编程语言通常提供 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 中可以按照我们选择的次数重复执行代码块的第一种方式。如你所知,我们可以指定次数 ——