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)