This question is more for my curiosity than anything else.
I often employ Java's ternary operator to write shorter code. I have been wondering, however, whether it is possible to use it if one of the if
or else
conditions are empty. In more details:
int x = some_function();
if (x > 0)
x--;
else
x++;
can be written as x = (x > 0) ? x-1 : x+1;
But is it possible to write if (x > 0) x-1;
as a ternary expression with an empty else clause?
A ternary operator doesn't have a do nothing option for either the true or false path since the entire ternary command returns a value and so both paths must set a value. The “do nothing” value will depend on what value you want the ternary operator to return to indicate “do nothing”.
The ternary conditional operator ?: allows us to define expressions in Java. It's a condensed form of the if-else statement that also returns a value.
You cannot use ternary without else, but you can use Java 8 Optional class: Optional.
Nope you cannot do that.
But is it possible to write
if (x > 0) x--;
as a ternary expression with an empty else clause?
No, the conditional operator requires three operands. If you wanted, you could do this:
x = (x > 0) ? x - 1 : x;
...but (subjectively) I think clarity suffers.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With