if-statement - Cobol - 检查 IF 子句中的余数

标签 if-statement division cobol

我想知道是否有任何方法可以检查 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 中可能吗? 如果您提供一些信息或链接,我将不胜感激。

最佳答案

是的,这在 COBOL 中是可行的(您没有指定使用哪个编译器,我假设它支持 COBOL85 的内部函数模块扩展),只要您不需要实际结果/余数:

而不是

       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

对于链接:您可以(并且应该)查看编译器的引用手册。否则,您可以使用搜索引擎来获取一些详细信息。

请求的链接:

关于if-statement - Cobol - 检查 IF 子句中的余数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49783968/

相关文章:

cobol - COBOL中识别程序调用子模块

java - 我可以使用 Java 中的 if/else 语句向字符串添加单词吗?

c - 为什么即使我使用 float ,5/2 的结果也是 '2'?

algorithm - 没有除法运算符的处理器上的汇编 mod 算法

mysql - MySQL 以外的 Postgres 中使用 INT 进行除法的结果

.net - .NET 中真的有 COBOL 吗?

java - 使用java firebase的android studio中的IF语句计数++

if-statement - 谁能解释为什么这个 brainfuck if/else 代码不起作用?

java - 给定三个数字作为输入,如果其中至少一个是素数则返回真

.net - Fujitsu COBOL 中的迭代 Systems.Collections.List