This operator is relatively rare because it has three operational objects. But it does belong to one of the operators because it eventually generates a value. This is different from the common If-else statement described in the latter section of this chapter. The expression takes the form of the following:
Boolean expression? Value 0: value 1
If the result of the Boolean expression is true, the value 0 is computed, and its result becomes the value that is ultimately generated by the operator. However, if the result of a Boolean expression is False, the value 1 is computed, and its result becomes the value that is ultimately generated by the operator.
Of course, you can also swap common if-else statements (described later), but the ternary operators are more concise. Although C is proud of being a concise language, and the introduction of ternary operators is mostly to reflect this efficient programming, but if you intend to use it frequently, or to do some more thinking-it is easy to produce very readable code.
You can use the conditional operator for your own "side effects", or for the value it generates. However, you should usually use it for values, because doing so distinguishes the operator from the If-else explicitly. Here is an example:
static int ternary (int i) {
Return I < 10? I * 100:i * 10;
}
As you can see, if you write the above code in a normal if-else structure, you'll have a lot more code than the above. As shown below:
static int alternative (int i) {
if (I < 10)
return i * 100;
return I * 10;
}
But the second form is easier to understand and does not require more input. So when choosing ternary operators, make sure you weigh the pros and cons.