2014-10-15 4 views
6

В java есть логический оператор OR (||) и логический оператор И (&&). Есть ли оператор logical XOR? Я пробовал ^^, но он не работает.Что такое логический оператор xor в java?

+0

Что логично делать? Существует поразрядный xor, который есть ^. –

+6

Логический xor (логический_xor B) в значительной степени просто «A! = B' – nos

ответ

18

Логический оператор XOR существует на Java и пишется ^.

Чтобы получить право терминологии, в Java:

  • &, | и ^ называются побитовым или логических операторов, в зависимости от типов их аргументов;
  • && и ||условно операторов.

Подробнее см. JLS § 15.22. Bitwise and Logical Operators и далее.

Нет прямого эквивалента для && и || для XOR. Единственная причина, по которой && и || существуют в качестве отдельных операторов от & и , являются их short-circuiting behaviour (вот почему они называются условными), а XOR не может быть закорочен.

+0

Интересно. Таблица в разделе «Учебники Java ™» на [Operators] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html) относится к «логическим операторам» в отличие от «побитовых операторов», но [ Равенство, реляционные и условные операторы] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html) относится к «условным операторам», как вы говорите. –

+0

А, я думаю, я понимаю конфликт. На самом деле я считаю, что «логический оператор» означает, что сравниваются булевые значения. Таким образом, операторы условия являются логическими операторами, а побитовые операторы также могут использоваться в качестве логических операторов. Вот почему JLS говорит «Побитовые и логические операторы» при обращении к '&', '' 'и'^'. Поэтому я не думаю, что было бы неверно ссылаться на '&&' и '' '(условные операторы) как на логические операторы. –

Смежные вопросы