Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Тернарные операторы

Определение 1

Тернарные операторы — это операторы, которые возвращают один из следующих за первым операндов согласно итогу расчёта некоторой логически выраженной формулы, задаваемой первым операндом.

Введение

Тернарная операция выполняет возврат одного из пары операндов по итоговым результатам вычисления логической формулы, которую задаёт первый операнд. То есть в тернарной операции участвуют три операнда. Аналогично тернарному оператору работает операция, имеющая название в логических разделах математики «условная дизъюнкция». Она отображается записью [p, q, r] и определяется следующим образом: «если p, то q, в противном случае r». Или, в другой формулировке, q или r, зависит от p или не p. Аналогичные процедуры присутствуют практически во всех программных средах.

Тернарные операторы

Термин «тернарный», если брать дословный перевод, значит «тройной» и этот оператор является альтернативой условного оператора if-else. Абстрагируясь от конкретного языка программирования, тернарная операция определяется следующим образом:

логическое выражение ?, выражение 1 : выражение 2.

То есть суть алгоритма операции такая:

  1. Выполняется вычисление логического выражения.
  2. В случае истинности логического выражения, определяется величина выражения 1, иначе вычисляется выражение согласно выражению 2.
  3. Выполняется возврат значения выражения, определённого в пункте два.
Замечание 1

Следует заметить, что вычисление производится только по одной из формул, или формуле выражения один или формуле выражения два. Это называется принципом ленивых выражений, и он расширяет возможности операции.

Применение и выполнение

Тернарные операторы применяются в случаях, когда надо выбрать одну из двух версий, что зависит от выполнения условий. Например:

«Тернарные операторы» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

alarm_time = today in [SUNDAY, MONDAY] ? 12.00 : 8.00

Это программа электронного будильника. Она выставляет время звонка для определённого дня недели. Следует отметить, что запись примера выполнена на некотором абстрактном программном языке.

Рассмотрим ещё один пример. Предположим, что какой-либо человек захотел посмотреть в кинотеатре фильм, на который допускаются только люди старше восемнадцати лет. На входе его возраст проверяется охранником и если возраст больше или равен восемнадцати годам, охранник пропускает его в кинозал, в противном случае — не пропускает. Сформируем класс Man и выполним проверку при помощи оператора if-else:

public class Man {
 private int age;
 public Man(int age) {
 this.age = age;
 }
 public int getAge() {
 return age;
 }
 public void setAge(int age) {
 this.age = age;
 }
 public static void main(String[] args) {
 Man man = new Man(22);
 String securityAnswer;
 if (man.getAge() >= 18) {
 securityAnswer = «Возраст больше восемнадцати, можете пройти»;
 } else {
 securityAnswer = «Вы не можете смотреть это кино»;
 }
 System.out.println(securityAnswer);
 }
}

Выводится сообщение: «Возраст больше восемнадцати, можете пройти»

Если не делать вывод сообщения, то останется следующая часть программы:

if (man.getAge() >= 18) {
 securityAnswer = «Возраст больше восемнадцати, можете пройти»;
 } else {
 securityAnswer = «Вы не можете смотреть это кино»;
 }

По существу, логика достаточно несложная, выполняется проверка только одного условия, а именно соответствие возрасту. Согласно выполненной проверке, переменная securityAnswer получает один или другой ответ охранника.

Подобные задачи с одним условием и двумя возможными результатами, довольно часто приходится решать программистам. По этой причине и был создан тернарный оператор. В приведённом выше примере проверка может быть сокращена при помощи тернарного оператора до одной кодовой строки:

public static void main(String[] args) {
 Man man = new Man(22);
String securityAnswer = (man.getAge() > 18) ?
«Возраст больше восемнадцати, можете пройти»: «Вы не можете смотреть это кино»;
 System.out.println(securityAnswer);
}

Выше представлено действие такого оператора. Тернарным он считается по причине участия в его реализации трёх элементов. Первый элемент, это, собственно, условие:

man.getAge() > 18.

А также два возможных варианта ответа: «Возраст больше восемнадцати, можете пройти» и «Вы не можете смотреть это кино».

Дата написания статьи: 29.11.2019
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot