C++ Условный оператор ? :

Операторы 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. Взгляните на следующий пример:

Пример

#include <iostream> using namespace std; int main () { // Объявление локальной переменной int x, y = 10; x = (y < 10) ? 30 : 40; cout << "значение x: " << x << endl; return 0; }

Когда приведённый выше код компилируется и выполняется, он выдаёт следующий результат:

value of x: 40

Операторы C++

Другие расширения