Условный (тернарный) оператор позволяет внедрять простые конструкции if...else
непосредственно в выражение.
Синтаксис:
условие ? выражение1 : выражение2;
Условие
- выражение, используемое в качестве условия. Выражение1
и выражение2
выполняются в зависимости от условия.
Если условие
истинно, выполняется выражение1
, иначе - выражение2
.
#include <iostream>
int main() {
setlocale(LC_ALL, "Russian");
int mark; //для чтения ввода
std::cout << "Введите полученную оценку (1-100)" << std::endl;
std::cin >> mark;
std::cout << ( (mark < 60) ? "не сдал" : "сдал" ) << std::endl;
return 0;
}
Условный оператор имеет довольно низкий приоритет, его необходимо взять в скобки. Отсутствие круглых скобок может привести к неожиданным и нежелательным результатам.
Условные операторы можно вкладывать один в другой. Например, можно уточнить вывод оценки в примере.
std::cout << ( (mark >= 90) ? "Сдал на отлично" : ((mark < 60) ?
"не сдал" : "сдал" ) ) << std::endl;