Тернарный оператор в C++
Пусть у нас есть следующий код, проверяющий,
есть ли уже пользователю 18 лет или нет:
int age = 17;
bool adult;
if (age >= 18) {
adult = true;
} else {
adult = false;
}
std::cout << adult << "\n";
Как вы видите, конструкция if-else
нужна только для того, чтобы записать определенное
значение в переменную adult. Для
таких задач, когда у нас в условии происходит
только запись одной переменной, существует
более короткое решение через так называемый
тернарный оператор.
Его синтаксис таков:
variable = condition ? value1 : value2;
Оператор работает так: если условие истинно,
то возвращается value1, в противном
случае - value2. Давайте перепишем
приведенный в самом начале урока код через
тернарный оператор:
int age = 17;
bool adult = age >= 18 ? true : false;
std::cout << adult << "\n";
Можно, кстати, не записывать результат в переменную, а сразу вывести его:
int age = 17;
std::cout << (age >= 18 ? true : false) << "\n";
Тернарный оператор следует использовать только в самых простых случаях, так как его использование затрудняет понимание кода.
Пусть дана переменная num, которая
может быть либо отрицательной, либо положительной.
Запишите в переменную res число
1, если переменная num больше
или равна нулю, и число -1, если переменная
num меньше нуля.