0

我正在尝试整理一些 REXX 代码来实现以下目标。

  1. 检查给定输入(0007145547162165876、0002734752467588968、555729879318548867、5559871342286434816)的给定条件(前 3 个字符是 000)。如果是这样,请对该输入执行一些计算(如下所示)。

    湾。如果条件不满足(即前 3 个字符不是 000 ),则对该输入执行不同的计算。

  2. 将两个计算的结果打印在一个文件中。

下面是我为第一个 if 条件语句提供的代码,它可以按需要工作。问题是实施第二个条件。我如何实现这一目标?

 if substr(rec.i,3,3) == '000'                             
      then do                                                
   sum = d1+d2+d5+d6+d7+d8+d9+d10+d11+d12+d13+d14+d15+d16    
   sum = sum * 9                                             
   chksum = substr(sum,2,2)                                  
   chk    = d3||d4                                           
   if chksum = chk                                           
      then do                       
            say 'valid check sum' chksum 'in' rec.i          
            out.1=rec.i                                      
            "EXECIO 1 DISKW DATA       (stem out."           
           end                                               
      else do                                                
            say '*** invalid check sum' chk 'in' rec.i       
            say '*** check sum should be' chksum 'in' rec.i  
            out.1=rec.i                                      
            "EXECIO 1 DISKW OUTFILE (stem out."              
           end                                               
   end                                                       
   end                                                       
4

1 回答 1

0

您可以查看 SELECT...WHEN...OTHERWISE 子句,看看是否对您有任何帮助。我用它来简化一些复杂的代码,在这些代码中我可能想要检查几种不同风格的输入。

请注意,它不是 IF...THEN...ELSE 逻辑的直接替代品。

于 2015-06-29T11:20:38.763 回答