# Language - Conditional operator (ternary)

The ternary operator is a Control Flow Statement.

Many people call it the ternary operator, because it's the only ternary (three operand) operator in many language.

The first expression must be of type boolean or Boolean, or a compile-time error occurs.

## 3 - Syntax

The conditional operator has three operand expressions:

firstBooleanOperand ? SecondOperand : ThirdOperand

where:

• the first operand expression must be of type boolean or Boolean
• the second or the third operand expression must not be an invocation of a void method.

At run time, the first operand expression of the conditional expression is evaluated first. The resulting boolean value is then used to choose either the second or the third operand expression:

• If the value of the first operand is true, then the second operand expression is chosen.
• If the value of the first operand is false, then the third operand expression is chosen.

Example:

String myName = mustBeShortName ? getShortName() : getLongName();

## 4 - Associativity

The conditional operator is syntactically right-associative (it groups right-to-left).

a?b:c?d:e?f:g

means the same as

a?b:(c?d:(e?f:g))