?
EXPRESSION :
EXPRESSIONif
. The first expression is evaluated (and must have type boolean), if it is true then the second expression is evaluated and this is the result of the ?
expression. If the first expression is false, then the third expression is evaluated and this is the result of the ?
expression. The second and third expressions must have types that are assignable to one-another.