2010-01-11 13 views
6

Có một toán tử trong Java sẽ đưa ra kết quả sai nếu một trong hai điều kiện là sai, nhưng nếu cả hai đều đúng hoặc sai cả kết quả sẽ là đúng ?Toán tử Java để kiểm tra xem một trong hai điều kiện là sai, nhưng không phải là cả hai hoặc không có

Tôi có một số mã dựa vào người dùng nhập một số giá trị cho quy trình để chạy. Vì người dùng chỉ có thể nhập x hoặc y nhưng không phải cả hai hoặc không, tôi muốn hiển thị thông báo lỗi trong trường hợp này.

Trả lời

20

Bạn muốn XNOR, về cơ bản:

if (!(a^b)) 

hoặc (đơn giản hơn)

if (a == b) 

nơi ab là những điều kiện.

Mẫu mã:

public class Test 
{ 
    public static void main(String[] args) 
    { 
     xnor(false, false); 
     xnor(false, true); 
     xnor(true, false); 
     xnor(true, true); 
    } 

    private static void xnor(boolean a, boolean b) 
    { 
     System.out.printf("xnor(%b, %b) = %b\n", a, b, a == b); 
    } 
} 

Tạo bảng chân lý này;

xnor(false, false) = true 
xnor(false, true) = false 
xnor(true, false) = false 
xnor(true, true) = true 
+0

Jon, có thể sẽ hữu ích khi hiển thị bảng logic đầy đủ cho toán tử XOR trong trường hợp này. Tôi sẽ làm điều đó ở đây, nhưng định dạng bình luận là khủng khiếp cho việc này. – jdmichal

+0

Cảm ơn, đó là những gì tôi đang tìm kiếm! Tôi biết có một nhà điều hành, chỉ không thể nhớ nó :) –

+0

@ James: Tôi đã chỉnh sửa điều này với một cách đơn giản hơn để làm điều này - nhà điều hành bình đẳng! –

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