C++ Условный оператор ? :
Exp1 ? Exp2 : Exp3;
Здесь Exp1, Exp2 и Exp3 — выражения. Обратите внимание на использование и размещение двоеточия. Значение выражения ? : зависит от результата вычисления Exp1. Если Exp1 истинно, то вычисляется Exp2, и результат Exp2 становится значением всего выражения ? :. Если Exp1 ложно, то вычисляется Exp3, и результат Exp3 становится значением всего выражения ? :.
? называется тернарным оператором, потому что требует три операнда, и может использоваться для замены инструкций if-else, как показано ниже:
if(condition){
var = X;
}else{
var = Y;
}
Например, взгляните на следующий код:
if(y < 10){
var = 30;
}else{
var = 40;
}
Приведённый выше код можно записать в виде следующей инструкции:
var = (y < 10) ? 30 : 40;
Здесь, если y меньше 10, то var присваивается значение 30; если y не меньше 10, то var присваивается значение 40. Взгляните на следующий пример:
Пример
Когда приведённый выше код компилируется и выполняется, он выдаёт следующий результат:
value of x: 40Другие расширения