cobol - COBOL 中的嵌套执行循环?

标签 cobol gnucobol cobol85

为什么我不能在 COBOL 中执行此嵌套执行循环?

如果我把END-PERFORM。在任何一行中比我在 EXIT PROGRAM 之前拥有最后一个的地方早 - 它有效。但是我需要程序每次都显示 INPUT C 值。在外部执行循环中。它让我发疯。

PROCEDURE DIVISION USING INPUTC CIPHER.
COMPUTE CIPHERMAX = CIPHER.
MULTIPLY -1 BY CIPHER
---> PERFORM VARYING CIPHER FROM 0 BY 1
UNTIL CIPHERMAX = CIPHER
    DISPLAY 'This is loop number: ' CIPHER
    INSPECT INPUTC CONVERTING
    "avcdefghijklmnopqrstuvwxyz" to "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    COMPUTE CONVERTNUM = FUNCTION MOD (CIPHER, 26)
    INSPECT FUNCTION REVERSE(INPUTC) TALLYING LENGTHNUM FOR LEADING SPACES
    COMPUTE LENGTHNUM = LENGTH OF CIPHER - LENGTHNUM

 ---> PERFORM UNTIL SENTRY = LENGTHNUM

            IF ((FUNCTION ORD(INPUTC(SENTRY:1)) + CONVERTNUM) > (FUNCTION ORD('Z')))
             MOVE FUNCTION CHAR((FUNCTION ORD(INPUTC(SENTRY:1)) + CONVERTNUM) - 26) TO RECHAR
              ELSE
             MOVE FUNCTION CHAR(FUNCTION ORD(INPUTC(SENTRY:1)) + CONVERTNUM) TO RECHAR
             END-IF  
              IF (((FUNCTION ORD(INPUTC(SENTRY:1))) >= (FUNCTION ORD('A'))) AND 
             ((FUNCTION ORD(INPUTC(SENTRY:1))) <= (FUNCTION ORD('Z'))))
             IF ((FUNCTION ORD(INPUTC(SENTRY:1)) + CONVERTNUM) > (FUNCTION ORD('Z')))
                INSPECT INPUTC(SENTRY:1) REPLACING ALL INPUTC(SENTRY:1) BY RECHAR
             ELSE
                INSPECT INPUTC(SENTRY:1) REPLACING ALL INPUTC(SENTRY:1) BY RECHAR
             END-IF
          ELSE
                INSPECT INPUTC(SENTRY:1) REPLACING ALL INPUTC(SENTRY:1) BY INPUTC(SENTRY:1)
          END-IF

          COMPUTE SENTRY = SENTRY + 1
        --->  END-PERFORM
    DISPLAY INPUTC.
    COMPUTE LOOPI = LOOPI + 1
    --->END-PERFORM.
EXIT PROGRAM.
END PROGRAM SOLVE.

最佳答案

DISPLAY INPUTC. 之后那个讨厌的范围终止期正在终止嵌套 PERFORM 的范围声明。摆脱这个时期,一切都应该正常工作。

根据 COBOL-85 标准编码程序时,您应该在程序部中使用的唯一句点是终止节和段落标题所需的句点,以及终止当前段落、节或程序所需的句点。

关于cobol - COBOL 中的嵌套执行循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16220831/

相关文章:

delimiter - Cobol字符串由尾部空格分隔

odbc - 读取 COBOL DAT 文件

cobol - 富士通COBOL 3.0

algorithm - COBOL 冒泡排序仅对表的最后一个元素进行排序

COBOL 屏幕部分

cobol - 如何在cobol中清除屏幕并将光标位置设置到屏幕末尾

cobol - 如何验证作为字母数字文字传递的负值?

cobol - 如何在 Cobol 中调用另一个程序?

cobol - 有没有办法像其他语言一样在 COBOL 中记录变量?

cobol - 从压缩十进制字段中分割数字