Что значит "?" значит на яве?
Я не знаю, что за знак вопроса (?
) Я выступаю за небольшую программу, Nim-игру. искали в книге, за помощью и увидели это утверждение:
int pinsToTake = (min >= 2) ? 2 : 1;
Я не понимаю, что будет ?
представляете, это может быть что-то делать с оператором if, но вы положили его в переменную? и :
может быть что-то еще? (то, что я только что сказал, может ввести в заблуждение)
9 ответов
someval = (min >= 2)? 2: 1;
Это называется троичным оператором, который можно использовать как if-else
, это эквивалентно
if((min >= 2) {
someval =2;
} else {
someval =1
}
Следуйте этому руководству для получения дополнительной информации и использования.
Это ternary operator
также называется условным оператором, смотрите ссылку
лайк Object bar = foo.isSelected() ? getSelected(foo) : getSelected(baz);
например. operand1 ? operand2 : operand3
- если операнд1 равен true, операнд2 возвращается, иначе операнд3 возвращается
- операнд1 должен быть логического типа
- операнд1 может быть выражением, которое оценивает логический тип
- операнд1 и операнд2 должны быть числовыми типами, которые можно продвигать, ссылками на объекты, которые могут быть преобразованы, или нулем.
- если один из операндов 2 или операндов 3 является байтом, а другой - коротким, тип возвращаемого значения будет коротким
- если один из операндов 2 или операндов 3 является байтом, коротким или символьным, а другой является постоянным значением типа int, которое будет соответствовать диапазону других операндов, тип возвращаемого значения будет типом другого операнда
- в противном случае применяется обычное двоичное числовое продвижение
- если один из операндов 2 или операндов 3 равен нулю, тип возвращаемого значения будет типом другого операнда
- если оба операнда 2 и операнд 3 являются разными типами, один из них должен быть совместим (кастуем) с другой ссылкой типа
Это значит:
if(min >= 2)
someval =2;
else
someval =1
Его называют троичным оператором. Смотрите также этот пример Java
Это троичный оператор. Проверьте документ Oracle для получения дополнительной информации. Короче говоря, это оператор if-else, который можно сделать в одной строке и использовать внутри методов и для определения значений переменных.
Синтаксис:
boolean_expression ? do_if_true : do_if_false;
Параллелизм с оператором if-else:
if(boolean_expression)
//do_if_true;
else
//do_if_false;
Я не использовал скобки специально, так как вы можете выполнить только одну строку кода в do_if_true
а также do_if_false
,
Пример использования:
boolean hello = true;
String greetings = hello ? "Hello World!" : "No hello for you...";
Это установит someString
как "Hello World!"
так как логическая переменная hello
оценивает как истинное. С другой стороны, вы можете вкладывать следующие выражения:
boolean hello = true;
boolean world = false;
String greetings = hello ? (world ? "Hello World!" : "Hello Stranger!") : "No hello for you...";
В этом случае приветствия будут иметь значение "Hello Stranger!"
;
Это называется оператор Ternary If, это просто сокращение для if...else
max = (a > b) ? a : b;
(а> б)? а: б; является выражением, которое возвращает одно из двух значений, a или b.
Условие (a > b) проверяется. Если это правда, первое значение, а, возвращается. Если оно ложно, возвращается второе значение b.
Какое бы значение не возвращалось, оно зависит от условного теста, a > b. Условием может быть любое выражение, которое возвращает логическое значение.
"?:" - троичный оператор, эквивалентный оператору if else.
В вашем примере:
pinsToTake = (min >= 2) ? 2 : 1
если min >= 2, тогда назначьте 2 для pinsToTake, иначе назначьте 1
Эта ссылка расскажет вам все, что вам нужно.
Резюме для архивных саке:
Это называется условный оператор. Это троичный оператор, который принимает три условия:
BooleanExpression? Expr1: Expr2
BooleanExpression оценивается. Если это правда, значение всего выражения Expr1. Если значение равно false, значением всего выражения является Expr2.
Таким образом, он служит той же цели, что и оператор if, но это скорее термин, чем целое утверждение. Это означает, что вы можете встроить его в места, где вы не можете использовать целое утверждение.
Это называется условный оператор. Вот как это работает. если min больше или равно 2, то первое значение после? здесь значение 2 будет присвоено соответствующей переменной, в противном случае будет назначено второе значение, равное 1.