2010-01-11 3 views
6

Gibt es einen Operator in Java, die ein Ergebnis von falschen geben werden, wenn entweder Bedingungen falsch sind, aber wenn beide wahr sind oder beide falsch das Ergebnis wahr sein ?Java Bediener zu überprüfen, ob entweder Bedingungen falsch sind, aber nicht beides oder keines

Ich habe einige Codes, einige Werte für einen Prozess ausgeführt Eingabe auf einem Benutzer angewiesen ist. Da der Benutzer nur x oder y, aber nicht beide oder keine eingeben kann, möchte ich in diesem Fall eine Fehlermeldung anzeigen.

Antwort

20

Sie wollen XNOR, im Grunde:

if (!(a^b)) 

oder (einfacher)

if (a == b) 

wo a und b die Bedingungen sind.

Beispielcode:

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); 
    } 
} 

Erzeugt diese Wahrheitstabelle;

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

Jon, es wäre wahrscheinlich vorteilhaft, in diesem Fall die vollständige Logiktabelle für den XOR-Operator anzuzeigen. Ich würde es hier tun, aber die Kommentarformatierung ist dafür schrecklich. – jdmichal

+0

Danke, das war was ich gesucht habe! Ich wusste, dass es einen Operator gab, konnte mich einfach nicht daran erinnern :) –

+0

@James: Ich habe das mit einer einfacheren Methode bearbeitet - dem Gleichheitsoperator! –

Verwandte Themen