Условное выражение (тернарный оператор)

 

Конструкцию условного выражения описывает синтаксическая диаграмма

 

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 могут быть отдельными операторами (присваивания, вызова функций), но не могут быть блоками.