【问题标题】:Cobol - checking for remainder in IF clauseCobol - 检查 IF 子句中的余数
【发布时间】:2018-04-11 20:27:27
【问题描述】:

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

【问题讨论】:

    标签: if-statement division cobol


    【解决方案1】:

    是的,这在 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
    

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

    请求的链接:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-05
      • 2021-02-21
      • 1970-01-01
      • 2022-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      相关资源
      最近更新 更多