Умовний вираз, написаний за допомогою тернарної (тобто три операнди) операції "? : ", є іншим способом запису цього і подібних їй конструкцій.
Загальний вираз:
вираз1 ? вираз2 : вираз3;
першим обчислюється вираз вираз1. Якщо його значення не нуль (істина), то обчислюється вираз вираз2, і значення цього виразу стає значенням всього умовного виразу. В іншому випадку обчислюється вираз вираз3 і його значення стає значенням умовного виразу. Слід зазначити, що з виразів вираз2 і вираз3 обчислюється тільки одне з них. Так, щоб встановити в z більше з а і b, можна написати z = (а > b) ? а : b; /* z = max(а, b)*/
Зауважимо, що умовний вираз і справді є виразом, і його можна використовувати в будь-якому місці, де допускається вираз.
Якщо вираз2 і вираз3 належать різним типам, то тип результату визначається правилами перетворення типів.
Приклад, якщо f має тип float, а n - тип int, то типом виразу
(n > 0) ? f : n буде float незалежно від того, додатнє значення n чи ні.
Брати в дужки перший вираз в умовному виразі не обов'язково, оскільки пріоритет ?: дуже низький (більш низький пріоритет має тільки присвоєння), проте рекомендується завжди це робити, оскільки завдяки дужкам умова у виразі краще
сприймається. Умовний вираз часто дозволяє скоротити програму.
Оператор варіанту . Оператор переривання.
Оператор switch був призначений для організації вибору з безлічі різних варіантів. Формат оператора наступний: