我正在尝试整理一些REXX代码以实现以下目标。
检查给定条件的给定输入(0007145547162165876,0002734752467588968,555729879318548867,5559871342286434816)(前3个字符为000)。如果是,请对该输入执行一些计算(如下所示)。
湾如果条件不满足(即前3个字符不是000),则对该输入执行不同的计算。
在一个文件中打印出两个计算的结果。
下面是第一个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
答案 0 :(得分:0)
您可以查看SELECT ... WHEN ... OTHERWISE子句,看看是否可以帮助您。 我用它来简化一些复杂的代码,我可能想要检查几种不同的输入。
注意,它不是IF的直接替代品......那么...... ELSE逻辑。