I 系列 RPGLE 函数可测试数组中多个位的值

问题描述 投票:0回答:1

我正在尝试确定是否有更有效的编码技术可以用于 if 语句。我有一个可以包含 128 位(0 或 1)的位数组。目前,我的代码如下所示:

if bi(64)='1' or bi(66)='1' or bi(67)='1' or bi(68)='1'
or bi(69)='1' or bi(70)='1' or bi(71)='1' or bi(72)='1'
or bi(73)='1' or bi(74)='1' or bi(75)='1' or bi(76)='1'
or bi(77)='1' or bi(78)='1' or bi(79)='1' or bi(80)='1'
or bi(81)='1';                                         

显然这不起作用,但是有没有一种方法可以用来简化这个表达式,就像这样或其他什么?

if bi(64) or bi(65) or bi(66) or bi(67) = '1'; 

我实际上已经尝试过上面的语句,但编译器不喜欢它。

ibm-midrange rpgle
1个回答
0
投票

这样的东西应该有效:

if %scan('1' : bi(64) + bi(65) + bi(66) + bi(67)) > 0;

请参阅 %SCAN 功能了解更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.