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
- 因此理论上它甚至可以异常终止
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
- 因此理论上它甚至可以异常终止