если заявление с "?"оператор и сломать Java - PullRequest
0 голосов
/ 20 февраля 2019

я нигде не могу найти, как делать методы с?оператор.только то, что я знаю:

boolean something = (!again) ? true : false;

это возвращает мне true или false, но если у меня есть if, если метод с break?как это:

if(!again){
break;
}

Могу ли я сделать это тоже?оператор?или ты знаешь лучший способ?у меня есть этот метод в цикле while.

Я не знаю, что еще сказать об этом ... просто, что я не могу найти это.я искал почти везде.Спасибо

Спасибо за ответ <3 </p>

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Условный оператор используется как часть выражения .Так что

  x ? y : z

является выражением.Вы можете использовать его везде, где требуется выражение.Однако

  if (some_condition) some_action;

является оператором , и, вообще говоря, выражения и операторы не являются взаимозаменяемыми.Так что, если вы пытаетесь избавиться от оператора if, это невозможно сделать с помощью ?:

С другой стороны, some_condition является (логическим) выражением, поэтому вы может записать:

 if (x ? y : z) some_action;

, если x, y, z сами являются логическими подвыражениями.Таким образом, в исходных терминах это допустимо:

if (!again ? true : false)
     break;

Но это избыточно и сокращается до

 if (!again)
     break;

, поэтому при написании этого с использованием оператора ?: есть отрицательное значение.

0 голосов
/ 20 февраля 2019

break; это утверждение.В Java операторы и выражения обычно не могут быть смешаны, хотя некоторые вещи (присваивания, унарные выражения приращения / уменьшения, вызовы конструктора и вызовы методов) оба.

троичный оператор работает только с выражениями.

Это так просто.break не является выражением , и 'a' и 'b' в cond ? a : b должны быть выражениями.

if (!again) break; - единственный способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...