COBOL 函数输出为字符串

COBOL function output as string

123456*
       IDENTIFICATION DIVISION.
       PROGRAM-ID. "EVEN-OR-ODD".
       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01 Num-1    PIC 9(02).
       02 Answer   PIC XXXX.
       PROCEDURE DIVISION.
           GOBACK.
       EVEN-OR-ODD.
          IF FUNCTION REM(NUM-1, 2) = 0
              COMPUTE ANSWER =  "Even"
          ELSE
              COMPUTE ANSWER = "Odd"
          END-IF
       END PROGRAM EVEN-OR-ODD.

这是一个简单的奇偶函数。它应该检查数字是否为偶数 return “偶数” 否则 return “奇数” 谁能解释一下哪里出了问题?

COBOL 编译器会告诉您这么多事情...

  • GOBACK作为第一个语句,所以其余的不会被执行
  • 程序缺少最后一个句点和一个 necessary/reasonable(取决于编译器)语句来结束程序(END PROGRAM 只在编译阶段被解析)——你可能想移动你的GOBACK.到最后
  • COMPUTE 没有将任何内容设置为字母数字,您可能需要 MOVE
  • 无法知道程序会做什么,所以可能需要 DISPLAY 而不是 MOVE
  • NUM-1 从未设置并且没有初始 VALUE - 因此理论上它甚至可以异常终止