You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

COBOL中如何用PERFORM循环12次执行MOVE语句?

COBOL中用循环简化重复MOVE操作

针对你需要重复执行12次MOVE操作的场景,用COBOL的PERFORM循环可以高效替代手动编写重复语句,以下是具体实现方式:

1. 定义循环计数器

首先在WORKING-STORAGE SECTION中声明一个计数器变量:

WORKING-STORAGE SECTION.
01  WS-COUNTER PIC 99 VALUE 0.

2. 使用PERFORM VARYING循环

在过程部中编写循环逻辑,让计数器从1到12遍历,动态替换数组下标:

PROCEDURE DIVISION.
    ...
    PERFORM VARYING WS-COUNTER FROM 1 BY 1
        UNTIL WS-COUNTER > 12
        MOVE BUD-NEXT-YR-BUDGET(WS-COUNTER) TO 
             BUDNW-NEXT-YR-BUDGET(WS-COUNTER)
    END-PERFORM
    ...

3. 更简洁的替代方案(如果数组结构一致)

如果BUD-NEXT-YR-BUDGET和BUDNW-NEXT-YR-BUDGET的定义完全相同(比如都是OCCURS 12 TIMES的同类型字段),可以直接批量移动整个数组,无需循环:

MOVE BUD-NEXT-YR-BUDGET TO BUDNW-NEXT-YR-BUDGET

这种写法效率更高,代码也更简洁。

兼容老版本COBOL的写法

如果你的环境使用的是较老的COBOL版本,也可以用PERFORM ... TIMES的方式:

PROCEDURE DIVISION.
    ...
    MOVE 0 TO WS-COUNTER
    PERFORM 100-MOVE-BUDGET 12 TIMES
    ...

100-MOVE-BUDGET.
    ADD 1 TO WS-COUNTER
    MOVE BUD-NEXT-YR-BUDGET(WS-COUNTER) TO 
         BUDNW-NEXT-YR-BUDGET(WS-COUNTER)

内容的提问来源于stack exchange,提问作者Dylan Bowen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 14:50:27