2014-10-15 43 views
6

Trong java, có toán tử OR logic (||) và toán tử logic AND (&&). Có một nhà điều hành logical XOR không? Tôi đã thử ^^ nhưng nó không hoạt động.Toán tử xor logic trong java là gì?

+0

Xor hợp lý sẽ làm gì? Có một xor bitwise là ^. –

+6

Một xor hợp lý (A logical_xor B) là khá nhiều chỉ 'A! = B' – nos

Trả lời

18

Toán tử XOR logic tồn tại trong Java và được viết là ^.

Để có được các thuật ngữ đúng, trong Java:

  • &, |^ được gọi là Bitwise hoặc logic nhà khai thác, tùy thuộc vào loại lập luận của họ;
  • &&|| được gọi là điều kiện nhà khai thác.

Để biết chi tiết, hãy xem JLS § 15.22. Bitwise and Logical Operators trở đi.

Không có tương đương trực tiếp cho &&|| cho XOR. Lý do duy nhất là &&|| tồn tại dưới dạng các toán tử riêng lẻ từ &|short-circuiting behaviour (đó là lý do tại sao chúng được gọi là "có điều kiện") và XOR không thể bị đoản mạch.

+0

Thú vị. Bảng tại _The Java ™ Tutorials_ trên [Toán tử] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html) đề cập đến "toán tử logic" khác với "toán tử bitwise", nhưng [ Các nhà điều hành bình đẳng, quan hệ và có điều kiện] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html) đề cập đến "các toán tử có điều kiện" như bạn nói. –

+0

Ah, tôi nghĩ tôi hiểu được xung đột. Thực ra tôi nghĩ rằng "toán tử logic" có nghĩa là các giá trị Boolean đang được so sánh. Do đó các toán tử điều kiện là các toán tử logic và các toán tử bitwise cũng có thể được sử dụng như các toán tử logic. Đó là lý do tại sao JLS nói "Bitwise and Logical Operators" khi đề cập đến '&', '|', và '^'. Vì vậy, tôi không nghĩ rằng nó sẽ là không chính xác để tham khảo '&&' và '||' (các toán tử điều kiện) như là các toán tử logic. –

Các vấn đề liên quan