2010-01-11 9 views
6

¿Hay un operador en Java que dará un resultado falso si las condiciones son falsas, pero si ambas son verdaderas o ambas son falsas, el resultado será verdadero ?Operador Java para comprobar si las condiciones son falsas, pero no ambas

Tengo un código que se basa en que un usuario ingrese algunos valores para que se ejecute un proceso. Como el usuario solo debería poder ingresar x o y pero no ambos o ninguno, me gustaría mostrar un mensaje de error en este caso.

Respuesta

20

¿Quieres XNOR, básicamente:

if (!(a^b)) 

o (más simple)

if (a == b) 

donde a y b son las condiciones.

Código de ejemplo:

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

produce esta tabla de verdad;

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

Jon, probablemente sería beneficioso mostrar la tabla lógica completa para el operador XOR en este caso. Lo haría aquí, pero el formato del comentario es horrible para esto. – jdmichal

+0

¡Gracias, eso era lo que estaba buscando! Sabía que había un operador, simplemente no podía recordarlo :) –

+0

@James: He editado esto con una forma más simple de hacer esto: ¡el operador de igualdad! –

Cuestiones relacionadas