2014-10-15 2 views
6

java에는 논리 OR 연산자 (||)와 논리 AND 연산자 (&&)가 있습니다. logical XOR 연산자가 있습니까? ^^을 시도했지만 작동하지 않습니다.java의 논리 xor 연산자는 무엇입니까?

+0

논리 xor는 무엇을할까요? 비트가있는 xor가 있습니다. –

+6

논리적 인 xor (A logical_xor B)는 거의 단지'A! = B'입니다. – nos

답변

18

논리 XOR 연산자는 Java에 존재하며 철자가 ^입니다.

자바에서, 용어의 권리를 얻으려면 :

  • &, |^비트 또는 논리적 사업자라고, 자신의 인자의 종류에 따라;
  • &&||조건부 연산자라고합니다.

자세한 내용은 JLS § 15.22. Bitwise and Logical Operators을 참조하십시오.

XOR의 경우 &&||과 직접적인 관련이 없습니다. 과 ||이 각각 &|에서 분리 된 연산자로 존재하는 유일한 이유는 short-circuiting behaviour ("조건부"라고 불리는 이유입니다)이며 XOR은 단락 될 수 없습니다.

+0

흥미 롭습니다. [연산자] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html)의 _The Java ™ Tutorials_에있는 테이블은 "비트 연산자"와 다른 "논리 연산자"를 참조하지만 [ Equality, Relational 및 Conditional Operators] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html)는 "조건부 연산자"를 말합니다. –

+0

아, 나는 그 갈등을 이해하고 있다고 생각합니다. 사실 "논리 연산자"는 부울 값이 비교되고 있음을 의미한다고 생각합니다. 따라서 조건 연산자는 논리 연산자이며 비트 연산자는 논리 연산자로도 사용할 수 있습니다. 이것이 JLS가'&','|','^'를 참조 할 때 "비트와 논리 연산자"라고 말하는 이유입니다. 그래서'&&'와'||'(조건 적 연산자)를 논리 연산자로 참조하는 것이 맞지 않을 것이라고 생각합니다. –

관련 문제