Об использовании операции "вопрос условия?"
В языке С (С++) имеется операция, не имеющая аналога в других языках высокого уровня (ЯВУ).
Это операция УСЛОВИЕ ?. В общем виде её синтаксис выглядит следующим образом.
(Выр.1)?(Выр.2):(Выр.3).
Операция выполняется следующим образом.
Вычисляется выражение 1.
Если оно истинно, то вычисляется выражение 2,
а если ложно, то вычисляется выражение 3.
Казалось бы полный аналог условного оператора:
IF (выр.1) (выр.2) else (выр. 3).
Однако это не так. Операция УСЛОВИЕ ? МОЖЕТ ВСТАВЛЯТЬСЯ В ВЫРАЖЕНИЕ.
Поэтому вполне допустимо выражение вида
a=d+((b>c)?(e):(f)), которое эквивалентно следующему условному оператору:
if (b>c) a=d+e; else a=d+f.
Следует иметь ввиду, что, в свою очередь, выр.2 и выр. 3 сами могут включать в себя операции УСЛОВИЕ ?, т.е. допускается вложенность этой операции.
Использование этой операции позволяет сократить текст программы при программировании вычислительных алгоритмов интегрирования, вычисления рядов, нахождения корней и т.п.
Это мы рассмотрим в наших дальнейших статьях.