Cobol - 检查 IF 子句中的余数
Cobol - checking for remainder in IF clause
我想知道是否有任何方法可以检查 IF 语句中除法的余数,例如:if (16 % 2 == 0) {...}
到目前为止我有这个:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 number-in pic 9(3).
01 number-out pic Z9.
01 result pic 9.
01 residue pic 9.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
MOVE 4 TO number-in.
PERFORM L1-LOOP UNTIL number-in = 100.
STOP RUN.
L1-LOOP.
DIVIDE number-in BY 2 GIVING result REMAINDER residue.
IF residue = 0
MOVE number-in to number-out
DISPLAY number-out.
ADD 1 TO number-in.
但在这里我必须使用额外的变量(result
)来获得除法的余数(residue
)。我想避免这种情况并直接在 IF 语句中检查余数。
在 Cobol 中可以吗?
如果能提供一些信息或 link.
,我将不胜感激
是的,这在 COBOL 中是可行的(你没有指定你使用的编译器,我假设它支持 COBOL85 的内部功能模块扩展),只要你不需要实际的 result/remainder:
而不是
DIVIDE number-in BY 2 GIVING result REMAINDER residue.
IF residue = 0
做
DIVIDE number-in BY 2 GIVING result REMAINDER residue.
IF FUNCTION MOD (number-in, 2) = 0
对于link:您可以(并且应该)查看编译器的参考手册。否则,您可以使用搜索引擎获取一些详细信息。
请求 links:
我想知道是否有任何方法可以检查 IF 语句中除法的余数,例如:if (16 % 2 == 0) {...}
到目前为止我有这个:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 number-in pic 9(3).
01 number-out pic Z9.
01 result pic 9.
01 residue pic 9.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
MOVE 4 TO number-in.
PERFORM L1-LOOP UNTIL number-in = 100.
STOP RUN.
L1-LOOP.
DIVIDE number-in BY 2 GIVING result REMAINDER residue.
IF residue = 0
MOVE number-in to number-out
DISPLAY number-out.
ADD 1 TO number-in.
但在这里我必须使用额外的变量(result
)来获得除法的余数(residue
)。我想避免这种情况并直接在 IF 语句中检查余数。
在 Cobol 中可以吗?
如果能提供一些信息或 link.
是的,这在 COBOL 中是可行的(你没有指定你使用的编译器,我假设它支持 COBOL85 的内部功能模块扩展),只要你不需要实际的 result/remainder:
而不是
DIVIDE number-in BY 2 GIVING result REMAINDER residue.
IF residue = 0
做
DIVIDE number-in BY 2 GIVING result REMAINDER residue.
IF FUNCTION MOD (number-in, 2) = 0
对于link:您可以(并且应该)查看编译器的参考手册。否则,您可以使用搜索引擎获取一些详细信息。
请求 links: