RPGLE 有三元运算符吗?

Does RPGLE has a ternary operator?

我确实在论坛上找到了关于这个问题的旧帖子。但是随着年龄的增长,我想知道它是否改变了。

我知道,大概在 2004 年,RPG 还没有三元运算符。在 C# 和 Java 中工作了一点之后,我确实使用了它们并且我喜欢它们。我想知道 RPGLE 是否最终以某种方式包含了它们。

在 C# 中,三元运算如下所示:

myvar = var1 > var2 ? var1 : var2;

因此,如果 var1 大于 var2,则 myvar 将获得 var1。这是一个基本示例。

所以...你们知道 RPGLE 中是否有三元运算符吗?如果有,它的语法是什么?

不,RPGLE 没有三元运算符。

http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzasd/expropt.htm

否,但您可以使用类似方法将指标(布尔值)设置为真或假。我一直这样做。如果下面的 numberOne 变量定义为初始值为 1 的整数和 numberTwo 初始值为 2.

*in99 = numberOne < numberTwo

99 = true 因为上面的语句测试为 true,否则 99 将等于 false。此语法替换以下

if numberOne < numberTwo
  *in99 = *on
else
  *in99 = *off
endif

运行 这个函数模拟了 RPGLE 中的三元组。还列出了一些 CLLE 选项。

https://www.itjungle.com/2005/11/09/fhg110905-story01/

D iif             pr           256a   varying                  
D  Condition                      n           value            
D  TrueValue                   256a   varying value            
D  FalseValue                  256a   varying value 
---------------------------------------------------
P iif             b                                    
D                 pi           256a   varying          
D  Condition                      n           value    
D  TrueValue                   256a   varying value    
D  FalseValue                  256a   varying value    
 /free                                                 
     if Condition;                                     
        return TrueValue;                              
     else;                                             
        return FalseValue;
endif;        
 /end-free         
P                 e