Условное выражение (тернарный оператор)
Конструкцию условного выражения описывает синтаксическая диаграмма
W ? W1 : W2
где
W – выражение,
W1 – выражение, вычисляемое в случае, если значение W не равно нулю (true), W2– выражение, вычисляемое в случае, если значение W равно нулю (false).
Значением условного выражения будет значение выражения W1, если значением W не равно нулю, иначе – значение выражения W2.
Условное выражение отличается от оператора ifelse следующим.
- оно может быть частью другого выражения или частью оператора, представляющей выражение, например, оператор printf("%f", x>0 ? sin(x) : 0); при x>0 выведет значение выражения sin(x), а при x<=0 - значение 0.
- выражения W1 и W2 могут быть отдельными операторами (присваивания, вызова функций), но не могут быть блоками.