Java “?”: оператор? [дубликат]

5
задан Community 23 May 2017 в 12:10
поделиться

6 ответов

Это условный оператор.

Некоторые называют его троичным оператором, но на самом деле это просто указание количества операндов. В частности, будущая версия Java может (совершенно обоснованно) ввести другой троичный оператор - тогда как название этого оператора - условный оператор.

См. раздел 15.25 спецификации языка:

Условный оператор ? : использует булево значение одного выражения, чтобы решить, какое из двух других выражений должно быть оценено.

21
ответ дан 18 December 2019 в 05:15
поделиться

тройной - это слово, которое вы ищете.

12
ответ дан 18 December 2019 в 05:15
поделиться

он называется условным оператором, но очень часто называется тернарным оператором (который представляет собой класс операторов, принимающих 3 операнда, однако в Java только один такой выход, а именно условный оператор)

иногда его называют третичным оператором, который просто ошибка использования языка (английского)

Eventhouigh this для c #, то же самое относится к Java

1
ответ дан 18 December 2019 в 05:15
поделиться

Условный оператор JLS 15.25? :

Условный оператор ? : использует логическое значение одного выражения, чтобы решить, какое из двух других выражений следует оценить.

JLS 15.28 Constant Expression

Постоянное выражение времени компиляции - это выражение, обозначающее значение примитивного типа или String , которое не завершается внезапно и составляется с использованием только следующее:

  • Тернарный условный оператор ? :

Таким образом, спецификация языка Java официально называет его (тернарным) условным оператором.


Соглашения о кодировании Java - отступы

Вот три приемлемых способа форматирования тернарных выражений:

 alpha = (aLongBooleanExpression)? бета: гамма;
альфа = (aLongBooleanExpression)? бета
 : гамма;
альфа = (aLongBooleanExpression)
 ? бета
 : гамма;
8
ответ дан 18 December 2019 в 05:15
поделиться

Он известен как тернарный или условный оператор (в зависимости от того, кого вы спросите)

Он позволяет вам делать однострочные условные операторы, как в этом псевдокоде

print a==1 ? 'a is one' : 'a is not one'

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

6
ответ дан 18 December 2019 в 05:15
поделиться

Вы имеете в виду оператор 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" ;
}
2
ответ дан 18 December 2019 в 05:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: