Примеры простых тернарных java-операторов

Тернарный (тройной) java-оператор – условный оператор, принимающий три операнда. Это замена if-then-else выражения, которая часто применяется в программировании на Java. Мы можем применять тройной оператор, дабы упростить код, а именно сократить количество строк, сделав его лаконичным и наглядным. Как такого добиться, будет показано ниже.

Примеры простых тернарных java-операторов

Примеры простых тернарных операторов

Одним из наиболее распространенных применений тернарного оператора в Java является назначение максимального или минимального значения 2-х переменных третей переменной, заменяя вызов метода Math.max (a, b) или Math.min (a, b).

Приведем пример, присваивающий минимум из 2-х переменныхa и b, 3-й переменной minVal:

minVal = (a< b) ? a : b.

В приведенном выше коде, если переменная a будет меньше, то переменной minVal присваивается значение a; в. Если же наоборот, a будет больше b, то minValполучит значение b.

Внимание! В этом примере круглые скобки совсем не обязательные, поэтому можно построить выражения следующим образом: minVal = a< b ? a : b.

Круглые скобки делают код несколько легче для чтения, но они не обязательные, поэтому вы можете использовать любой ситнаксис, который вам понравится.

Можно воспользоваться аналогичным подходом, чтобы получить абсолютное значение числа:

intabsValue = (a<0)? -а: а.

При этом первый операнд в тройном операторе должен быть оператором с логическим результатом или логическим. Если первый операнд = rue, то оператор возвращает второй операнд, в противном случае он возвращает третий операнд.

Общий синтаксис

Учитывая перечисленные выше примеры, очевидно, что общий синтаксис выглядит так:

result = testCondition ? value1 : value2

В Oracledocumentation описано, что логика применения заключается в том, что «Если testCondition = true, присвойте значение value1 результату; иначе присвойте результату значение value2».

Приведем еще два ярких примера. Пример 1 – значение с плавающей запятой:

// результату присваивается значение 1.0
floatresult = true ?1.0f : 2.0f

Использования String:

// результату присваивается значение «Извини, чувак, это ложь».
Stringresult = false ?»Dude, thatwastrue» :»SorryDude, it’sfalse»;
testConditionбывает простым логическим значением или оператором, оценивающим логическое значение (точно так же как оператор (a<0), рассматриваемый нам выше).

Пример 2 – исходный код проекта Abbot:

privatestaticfinalintsubMenuDelay = Platform.isOSX() ? 100 : 0;

Конструкция «IF (COND) THEN Statement (s) ELSE Statement (s)» сама по себе является выражением.
«COND ?Statement :Statement» является выражением, и, как следствие, может располагаться справа от присваивания.

Можно использовать, дабы избежать репликации вызова функции с большим числом параметров: myFunc ((COND? defaultValue: getMyFuncParameter ())).

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

returnString = «There » + (x > 1 ? » are » + x + » cookies» :»isonecookie») + » inthejar.»

Пример аналогичной операции в String. Однако для правильного вывода привествия здесь используется конкретный пол человека:

returnString = «Thankyou » + (person.isMale() ?»Mr. » :»Ms. «) + person.getLastName() + «.»

Приведем еще один пример исходного кода класса Java для тестирования примеров, показанных в данном руководстве:

publicclassJavaTernaryOperatorExamples
{
publicstaticvoidmain(String[]args)
{
// минимальное значение
intminVal, a=3, b=2;
minVal = a < b ? a : b;
System.out.println(«min = » + minVal);
// абсолютное значение
a = -10;
intabsValue = (a < 0) ? -a : a;
System.out.println(«abs = » + absValue);
// результату присваивается значение 1.0
floatresult = true ?1.0f : 2.0f;
System.out.println(«float = » + result);
// результат присваивается значение «Извини, чувак, это ложь»
String s = false ?»Dude, thatwastrue» :»SorryDude, it’sfalse»;
System.out.println(s);
// пример использования тернарного оператора в правой части строки
int x = 5;
Stringout = «There » + (x > 1 ? » are » + x + » cookies» :»isonecookie») + » inthejar.»;
System.out.println(out);
}
}

Удалось ли вам разобраться с тернарного оператора Java? Хорошими ли были наши примеры? Напишите свое мнение в комментариях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *