Сравните два значения, используя ´ =? ´ в Java - PullRequest
1 голос
/ 02 января 2012

Как я могу сравнить два значения без использования IF. Я знаю, что можно использовать = ? или что-то вроде этого. Например, давайте сравним размер двух массивов c и t. Для этого я хотел бы использовать код, подобный следующему:

boolean answ = ? c.size() = t.size();

Ответы [ 7 ]

6 голосов
/ 02 января 2012

Попробуйте boolean answ = c.size() == t.size();

Тернарный оператор ? используется для получения одного из двух ответов - он не нужен, если вам нужен только один логический ответ.

4 голосов
/ 02 января 2012

Если вам нужно использовать?Вы должны написать:

boolean answ = ( c.size() == t.size() ? true : false );

, но это намного дольше, чем писать

boolean answ = ( c.size() == t.size()  );
2 голосов
/ 02 января 2012

Этот код будет сравниваться без использования if:

boolean answ s= (c.size()==t.size()) ? true : false;
2 голосов
/ 02 января 2012

Это должно работать:

boolean answ = c.size() == t.size();

Что вы можете помнить, это короткая конструкция if else:

return c.size() == t.size() ? true : false;
1 голос
/ 02 января 2012

Это называется троичным или условным оператором:

http://en.wikipedia.org/wiki/Ternary_operation

1 голос
/ 02 января 2012

Вы имеете в виду троичный оператор?

result = expr1 ? expr2 : expr3;

Если expr1 имеет значение true, тогда result присваивается результат expr2, в противном случае результат expr3.Итак:

boolean answ = c.size() == t.size() ? true : false;
0 голосов
/ 02 января 2012

Для сравнения значений вы обычно используете ==, а не =, если только вы не сравниваете не примитивные значения (тогда вам придется использовать метод equals, если вы соответствующим образом переопределите его в классе).

Один = используется для воздействия, а не для проверки равенства.

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