Найти в Дзене
Pro.Cod1ng

Условный тернарный оператор

Что такое тернарный оператор? Тернарная условная операция (от латинского «ternarius» — тройной) — операция, реализованная во многих языках программирования, возвращающая свой второй или третий операнд, в зависимости от логического выражения, стоящего на месте первого операнда. Аналогом тернарного оператора является условная дизъюнкция. Для операторов a,b и c, определяющих истинность какого-либо суждения, значение условной дизъюнкции [a,b,c] определяется по формуле (b→a)∧(¬b→c). Если говорить проще, то запись [a,b,c] эквивалента записи «если b, то a, иначе c». Синтаксис Чаще всего тернарный оператор используется в Си-подобных языках программирования и имеет следующий синтаксис:
(условие) ? (выражение_1) : (выражение_2);
Что полностью равносильно стейтменту:
if (условие)
выражение_1;
else
выражение_2; Примеры Решим простую задачу с использованием тернарного оператора. Решение опишем на трёх популярных языках программирования: С++, Python, Java. Условие: Вводятся 2 целых числа. Выве
Оглавление

Что такое тернарный оператор?

Тернарная условная операция (от латинского «ternarius» — тройной) — операция, реализованная во многих языках программирования, возвращающая свой второй или третий операнд, в зависимости от логического выражения, стоящего на месте первого операнда.

Аналогом тернарного оператора является условная дизъюнкция. Для операторов a,b и c, определяющих истинность какого-либо суждения, значение условной дизъюнкции [a,b,c] определяется по формуле (b→a)∧(¬b→c). Если говорить проще, то запись [a,b,c] эквивалента записи «если b, то a, иначе c».

-2

Синтаксис

Чаще всего тернарный оператор используется в Си-подобных языках программирования и имеет следующий синтаксис:
(условие) ? (выражение_1) : (выражение_2);
Что полностью равносильно стейтменту:
if (условие)
выражение_1;
else
выражение_2;

-3

Примеры

Решим простую задачу с использованием тернарного оператора. Решение опишем на трёх популярных языках программирования: С++, Python, Java.

Условие: Вводятся 2 целых числа. Выведите большее из них. Если они равны, то выведите любое.

Решение | C++:

-4

Решение | Python:

-5

Решение | Java:

-6

Тернарный оператор VS if + else

Условная тернарная операция позволяет писать более лаконичный и простой код. Но не стоит увлекаться, у неё есть свои минусы и ограничения по сравнению с конструкцией if + else, всё зависит от конкретной ситуации:

  • «Вложенные» тернарные операции выглядят эффектно, но ухудшают читабельность кода:
-7
  • Тернарная операция не подойдёт, если в зависимости от условия надо выполнить несколько (а не одно выражение) строчек кода (блок кода). Нужна условная конструкция if:
-8
  • Инструкцию return нельзя использовать внутри самой тернарной операции. Интерпретатор вас не поймёт и выкинет ошибку:
-9