Что значит "?" значит на яве?

Я не знаю, что за знак вопроса (?) Я выступаю за небольшую программу, 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.

Другие вопросы по тегам