The ? operator is a ternary operator (it works on three expressions). It has this general form:
expression1 ? expression2 : expression3;
If expression1 is true, then the outcome of the operation is expression2; otherwise, it is the value of expression3.
|Programming Tip|| |
The ? is often used to replace if-else statements of this general type:
if(expression1) var = expression2; else var = expression3;
For example, the sequence
if(y < 10) x = 20; else x = 40;
can be rewritten like this:
x = (y<10) ? 20 : 40;
Here, x is assigned the value of 20 if y is less than 10 and 40 if it is not.
One reason that the ? operator exists, beyond saving typing on your part, is that the compiler can produce very fast code for this statement—much faster than for the similar if-else statements.