Условная операция (?:)
Условная операция "?:" - единственная трехчленная (тернарная) операция
в C++, имеющая три операнда. Ее синтаксис:
условие? выражение 1: выражение 2;
Первый операнд является условием, второй операнд содержит значение условного выражения в случае, если условие истинно (возвращает ненулевое значение), а третий операнд равен значению условного выражения, если условие ложно (возвращает нуль).
Например, оператор:
grade > 3 ? cout<<"Вы хорошо знаете материал": cout<<"Плохо";
в зависимости от значения переменной gradeвыдаст текст "Вы хорошо знаете материал" при значении grade,превышающем 3, и текст "Плохо" при меньшем значении grade.
Оператор с условной операцией выполняет фактически те же функции, что
и оператор if...else…. Но в ряде случаев применение условной операции компактнее и нагляднее оператора if...else.К тому же иногда условная операция может использоваться в таких ситуациях, когда применение оператора if...else…синтаксически невозможно.
В условной операции условные выражения могут быть практически любого типа (любым скалярным выражением, арифметическим выражением, указателем, структурой, объединением), но типы двух выражений в операции должны быть согласованными. В качестве условных выражений могут также фигурировать какие-то исполняемые действия.