Ternary operator is a compact conditional assignment.
It serves to set a value of a variable depending on a boolean expression or a boolean variable.
a = b ? c : d;
The expression above is same as:
if ( b ) {
a = c;
} else {
a = d;
}
The a, c and d variables
must be of the same data type
(or type of c and d must be convertible to type of a using automatic conversion).
The b variable is boolean.
b, c or d do not have to be variables.
They may be constants or expressions.
a has to be a variable.