For sure ternary is a well known construct, omnipresent since ages in languages "with the curly braces". Can be quite cryptic for some.
In some lang like PHP there is even
the "Elvis operator" ?:
The null coalescing ??The spaceship operator <=> (useful for sorting)
most syntactic lipstick, but can augment expressiveness for common operations.
Nice things, but there are at the moment more important targets and objective in the ILE language compilers...
On Friday, December 12, 2025 at 08:22:27 AM GMT+1, Peter Dow <petercdow@xxxxxxxxx> wrote:
dcl-s boolVar IND inz;
boolVar = (a = b ? '1': '0');
It's your choice. That is RPG valid code above.
I assume you mean that the DCL-S is valid RPG code, since the request
was to have a construct like
boolVar = (a = b ? '1': '0');
in RPG.
RPG does not have ==, just =, but in the context of
boolVal = (a = b);
the (a = b) is the same as the C (a == b), correct?
In that case, unless RPG comes up with some operator that distinguishes
between = (assignment) and == (test for logical equivalence), the
closest we can get to the C version is
boolVal = (a = b); // the equivalent of the C expression boolVal = (a ==
b ? '1' : '0');
If the C expression was
resultString = (a == b ? 'Hello' : 'Goodbye');
RPG would require
if a = b;
resultString = 'Hello';
else;
resultString = 'Goodbye';
endif;
and if the C expression was
resultString = (a = b ? 'Hello' : 'Goodbye');
RPG would require
a = b;
if b <> 0;
resultString = 'Hello';
else;
resultString = 'Goodbye';
endif;
Meaning that the assignment of b to a is unconditional, but the
assignment of 'Hello' or 'Goodbye' is conditioned upon the value of b
being non-zero.
--
*Peter Dow* /
909 793-9050
petercdow@xxxxxxxxx
/
On 12/11/2025 6:56 PM, Javier Sanchez wrote:
Simple:
One line of code. The compiler would make the hard work with the return
value. It is your intellectual work that you want back. A string? A
floating point? A char()? Whatever. The single line is clear upon your
intention.
The == notation is "C", put that away in RPG. Use only one = sign.
The return value is your intellectual work. Say it is an IND:
dcl-s boolVar IND inz;
boolVar = (a = b ? '1': '0');
It's your choice. That is RPG valid code above.
JS
As an Amazon Associate we earn from qualifying purchases.