Условная операция
Условная операция позволяет встроить в любое выражение некоторое подобие условного оператора.
int a;
double b;
c = x + a > b ? a : b;
// Условие ? Выражение для "истина" : Выражение для "ложь"
Операция использует три операнда и два знака операции (?:) . Первым операндом является условие. Если оно истинно, то результатом становится значение второго операнда, если ложно -то третьего. В данном примере вычисляется максимальное значение переменных a,b . Тип результата операции определяется по правилам неявного преобразования типов для второго и третьего операндов. Он будет всегда один и тот же, независимо от выполнения условия. В данном случае -всегда double , так как переменная a будет приведена к этому типу.