3.15 The Conditional Operator: '?'

The ternary conditional operator allows conditional expressions to be defined. The operator has the following syntax:


<condition> ? <expression1> : <expression2>

If the boolean expression <condition> is true then <expression1> is evaluated; otherwise, <expression2> is evaluated. Of course, <expression1> and <expression2> must evaluate to values of compatible types. The value of the expression evaluated is returned by the conditional expression.

boolean leapYear = false;
int daysInFebruary = leapYear ? 29 : 28;   // 28

The conditional operator is the expression equivalent of the if-else statement. The conditional expression can be nested and the conditional operator associates from right to left:


(a?b?c?d:e:f:g) evaluates as (a?(b?(c?d:e):f):g)