Это условный оператор.
Некоторые называют его троичным оператором, но на самом деле это просто указание количества операндов. В частности, будущая версия Java может (совершенно обоснованно) ввести другой троичный оператор - тогда как название этого оператора - условный оператор.
См. раздел 15.25 спецификации языка:
Условный оператор ? : использует булево значение одного выражения, чтобы решить, какое из двух других выражений должно быть оценено.
он называется условным оператором, но очень часто называется тернарным оператором (который представляет собой класс операторов, принимающих 3 операнда, однако в Java только один такой выход, а именно условный оператор)
иногда его называют третичным оператором, который просто ошибка использования языка (английского)
Eventhouigh this для c #, то же самое относится к Java
Условный оператор JLS 15.25? :
Условный оператор
? :
использует логическое значениеодного выражения, чтобы решить, какое из двух других выражений следует оценить.
JLS 15.28 Constant Expression
Постоянное выражение времени компиляции - это выражение, обозначающее значение примитивного типа или
String
, которое не завершается внезапно и составляется с использованием только следующее:
- Тернарный условный оператор
? :
Таким образом, спецификация языка Java официально называет его (тернарным) условным оператором.
Соглашения о кодировании Java - отступы
Вот три приемлемых способа форматирования тернарных выражений:
alpha = (aLongBooleanExpression)? бета: гамма; альфа = (aLongBooleanExpression)? бета : гамма; альфа = (aLongBooleanExpression) ? бета : гамма;
Он известен как тернарный или условный оператор (в зависимости от того, кого вы спросите)
Он позволяет вам делать однострочные условные операторы, как в этом псевдокоде
print a==1 ? 'a is one' : 'a is not one'
Как отмечает Джон Скит, его правильное название - условный оператор, но у него 3 операнда, поэтому он является тернарным оператором.
Вы имеете в виду оператор if else? Найдите слово ternery.
int x = 2;
String result = x > 1 ? "a" : "b";
означает:
int x = 2;
String result = "";
if (x > 1) {
result = "a";
} else {
result = "b" ;
}