Тернарный оператор ?
Тернарный оператор ? (также известный как условный оператор) - это единственный оператор в C++, который принимает три операнда. Он позволяет записать конструкцию if-else в одну строку и вернуть значение. Первым параметром оператор принимает условие, вторым - выражение, которое выполнится, если условие истинно, а третьим - выражение, которое выполнится, если условие ложно. Результатом работы оператора является значение одного из двух выражений.
Синтаксис
condition ? expression_true : expression_false
Сначала вычисляется condition. Если оно истинно (не равно 0), то вычисляется и возвращается expression_true. В противном случае вычисляется и возвращается expression_false. Важно, чтобы оба выражения имели общий тип или тип, к которому они могут быть приведены.
Пример
Давайте найдем максимальное из двух чисел, используя тернарный оператор:
#include <iostream>
using namespace std;
int main()
{
int a = 10;
int b = 20;
int max = (a > b) ? a : b;
cout << max << endl;
return 0;
}
Результат выполнения кода:
20
Пример
Давайте проверим, является ли число четным, и выведем соответствующую строку:
#include <iostream>
using namespace std;
int main()
{
int num = 7;
string res = (num % 2 == 0) ? "even" : "odd";
cout << res << endl;
return 0;
}
Результат выполнения кода:
"odd"