Cobol - 检查IF子句中的余数

时间:2018-04-11 20:27:27

标签: 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有可能吗? 我会很感激一些信息或链接。

1 个答案:

答案 0 :(得分:2)

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

而不是

       DIVIDE number-in BY 2 GIVING result REMAINDER residue.
       IF residue = 0

DO

       DIVIDE number-in BY 2 GIVING result REMAINDER residue.
       IF FUNCTION MOD (number-in, 2) = 0

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

请求的链接: