Uses the result of the first expression to select which of the next two expressions to evaluate and return.
The conditional operator evaluates the first expression (a boolean
)
and uses the result to select which of the second and third expressions
to evaluate and return. If the first expression evaluates to true
,
the second is selected and returned. If the first evaluates to false
,
the third is evaluated and returned.
isRaining() ? "It's raining!" : "Clear skies!";
If it's raining (isRaining()
returns true), this
expression evaluates to "It's raining!"
. Otherwise this
expression evaluates to "Clear skies!"
.
Conditional Operators can be expressed through:
1 | bool-expr ? expr1 : expr2 |
where...
bool-expr | is an expression whose type is boolean (or its
wrapper type, Boolean ).
|
expr1 | is any non-void expression,
including assignment expressions.
|
expr2 | is a any non-void expression except
for assignment expressions.
|
void
expression is an expression whose
type is not void
. In other words, any expression except
for an invocation of a void method.
1 A conditional expression.
Ternary expressions are used to conditionally select one of two
expressions based on the result of a boolean expression. They are, in
some sense, the expression form of an if
statement. The
following:
if (condition)
return "value1";
else
return "value2";
is equivalent to:
return condition ? "value1" : "value2";
because the expression condition ? "value1" : "value2"
evaluates to "value1"
if condition
is true
and "value2"
if condition
is false.