Java: boolean in println (boolean? "Print true": "print false" )
Я столкнулся с этим синтаксисом:
System.out.println(boolean_variable ? "print true": "print false");
- Что это за синтаксис с двумя точками: называется?
- Где я могу найти информацию об этом?
- Работает ли он только для логических элементов или реализуется другими способами?
Ответы
Ответ 1
? :
является условным оператором . (Это не только часть :
- весь аргумент метода - это одно использование условного оператора в вашем примере.)
Он часто называется тернарным оператором, но это только аспект его природы - с тремя операндами, а не с его именем. Если в Java будет введен еще один тернарный оператор, этот термин станет двусмысленным. Он называется условным оператором, потому что он имеет условие (первый операнд), который затем определяет, какой из двух других операндов оценивается.
Первый операнд оценивается, а затем либо второй, либо третий операнд оценивается на основании того, является ли первый операнд истинным или ложным... и который заканчивается в результате оператора.
Так что-то вроде этого:
int x = condition() ? result1() : result2();
примерно эквивалентен:
int x;
if (condition()) {
x = result1();
} else {
x = result2();
}
Важно, чтобы он не оценивал другой операнд. Так, например, это нормально:
String text = getSomeStringReferenceWhichMightBeNull();
int usefulCharacters = text == null ? 0 : text.length();
Ответ 2
Это условный оператор, часто называемый тернарным оператором, потому что он имеет 3 операнда: Пример:
int foo = 10;
int bar = foo > 5 ? 1 : 2; // will be 1
int baz = foo > 15 ? 3 : 4; // will be 4
Итак, если выражение boolean
оценивается как true
, оно вернет первое значение (перед двоеточием), иначе второе значение (после двоеточия).
Вы можете прочитать специфику в Спецификация языка Java, глава 15.25 Условный оператор ?
Ответ 3
Это тройной оператор, означающий, что вместо двух операндов, подобных многим другим операторам, он имеет три. Википедия о тройной операции и как она используется в Java, Что это сводится к: вычисляется логическая операция (или просто переменная). Если он оценивает значение true, оператор возвращает значение/выполняет код перед :
, в противном случае - после него.
Ответ 4
Это утверждение if.
Что слева? это условие, что между? и: является результатом, если условие истинно, а что справа от: является результатом, если условие ложно.
Ответ 5
Это тернарный оператор (http://en.wikipedia.org/wiki/?:). Его можно использовать везде, где вам нужно небольшое выражение if
.
Ответ 6
По всем вопросам:
-
?:
(оба символа вместе) называются условным оператором (или тройным оператором). Только обе вместе будут работать.
- Поиск оператора java ternery
- Он работает только для boolean
В принципе оператор ternery является сокращенным if
/else
. boolean
будет состоять в условии if, то часть между ?
и :
является ветвью if
, а часть после этого является ветвью else
.
Обратите внимание, что тип возврата условного оператора определяется первой ветвью.
Ответ 7
Это тернарный оператор и работает с булевыми. Его можно использовать как сокращенное для if-else в некоторых случаях, но не следует использовать для слишком сложных вещей, поскольку его трудно прочитать.
Примером может быть присвоение значения переменной в зависимости от условия:
String message = doOperation() ? "Success" : "Error occurred";
System.out.println(message);
В этом случае, если doOperation возвращает логическое сообщение о том, выполнено ли это или нет, отображаемое сообщение может быть назначено в одной строке.
Обратите внимание, что этот пример не является хорошей практикой программирования.
Ответ 8
Его тернарный оператор.
Тернарный оператор или?, является сокращением if else. Его можно использовать для оценки выражения и возврата одного из двух операндов в зависимости от результата выражения.
boolean b = true;
String s = ( b == true ? "True" : "False" );
Это установит значение String s в соответствии со значением boolean b. Это можно записать с помощью инструкции if else:
boolean b = true;
String s;
if(b == true){
s = "True";
}else{
s = "False";
}
Ответ 9
Его короткая форма оператора if-else.
Он работает таким образом
(yourCondition ? STATEMENT1 : STATEMENT2)
- Компилятор проверяет условие.
-
IF
он возвращает TRUE
, тогда будет выполняться STATEMENT1
.
-
ELSE
STATEMENT2
будет выполнен.
Ответ 10
Значок вопроса, сопровождаемый двоеточием (две точки), является тернарным оператором, обычно называемым inline if.
В этом случае он возвращает строку в зависимости от значения boolean_variable.
http://en.wikipedia.org/wiki/%3F:
Ответ 11
Смотрите здесь. Тернарный оператор похож на выражение if, но отличается тем, что он является выражением - он имеет возвращаемое значение, а если выражения нет. Иногда вы хотите использовать его, чтобы сделать ваш код немного менее загроможденным.