В этом руководстве мы узнаем о тернарном операторе в C ++ с помощью примеров.
В C ++ тернарный оператор (также известный как условный оператор ) может использоваться для замены if… else в определенных сценариях.
Тернарный оператор в C ++
Тернарный оператор оценивает условие теста и выполняет блок кода на основе результата условия.
Его синтаксис
condition ? expression1 : expression2;
Здесь condition
оценивается и
- если
condition
естьtrue
, тоexpression1
выполняется. - И, если
condition
естьfalse
,expression2
исполняется.
Тернарный оператор принимает 3 операнда ( condition
, expression1
и expression2
). Отсюда и название тернарный оператор .
Пример: тернарный оператор C ++
#include #include using namespace std; int main() ( double marks; // take input from users cout <> marks; // ternary operator checks if // marks is greater than 40 string result = (marks>= 40) ? "passed" : "failed"; cout << "You " << result << " the exam."; return 0; )
Выход 1
Введите свои оценки: 80 Вы сдали экзамен.
Предположим, пользователь вводит 80 . Затем условие marks>= 40
оценивается как true
. Следовательно, "passed"
результату присваивается первое выражение .
Выход 2
Введите свои оценки: 39,5 Вы провалили экзамен.
Теперь предположим, что пользователь вводит 39,5 . Затем условие marks>= 40
оценивается как false
. Следовательно, "failed"
результату присваивается второе выражение .
Когда использовать тернарный оператор?
В C ++ тернарный оператор может использоваться для замены определенных типов if… else
операторов.
Например, мы можем заменить этот код
#include using namespace std; int main() ( // Create a variable int number = -4; if (number> 0) cout << "Positive Number"; else cout << "Negative Number!"; return 0; )
с участием
#include #include using namespace std; int main() ( int number = -4; string result; // Using ternary operator result = (number> 0) ? "Positive Number!" : "Negative Number!"; cout << result << endl; return 0; )
Вывод
Отрицательное число!
Здесь обе программы дают одинаковый результат. Однако использование тернарного оператора делает наш код более читаемым и чистым.
Примечание: мы должны использовать тернарный оператор только в том случае, если результирующий оператор короткий.
Вложенные тернарные операторы
Также возможно использовать один тернарный оператор внутри другого тернарного оператора. В C ++ он называется вложенным тернарным оператором.
Вот программа, которая с помощью вложенного тернарного оператора определяет, является ли число положительным, отрицательным или нулевым.
#include #include using namespace std; int main() ( int number = 0; string result; // nested ternary operator to find whether // number is positive, negative, or zero result = (number == 0) ? "Zero" : ((number> 0) ? "Positive" : "Negative"); cout << "Number is " << result; return 0; )
Вывод
Число равно нулю
В приведенном выше примере обратите внимание на использование тернарных операторов,
(number == 0) ? "Zero" : ((number> 0) ? "Positive" : "Negative");
Вот,
(number == 0)
это первое условие теста, которое проверяет, равно ли число 0 или нет. Если да, то результату присваивается строковое значение"Zero"
.- В
(number> 0)
противном случае второе условие теста оценивается, если выполнено первое условиеfalse
.
Примечание . Не рекомендуется использовать вложенные тернарные операторы. Это потому, что это усложняет наш код.