代码之家  ›  专栏  ›  技术社区  ›  James Goodwin

Java操作符来检查两个条件是否都是错误的,但不是两者都不是。

  •  6
  • James Goodwin  · 技术社区  · 15 年前

    是否有一个Java中的操作符,如果两个条件都是错误的,则会给出false的结果,但是如果两者都是真的还是假的,那么结果会是真的吗?

    我有一些代码依赖于用户输入一些值来运行进程。由于用户只能输入x或y,但不能同时输入x和y或不输入y,因此在这种情况下,我希望显示一条错误消息。

    1 回复  |  直到 12 年前
        1
  •  22
  •   Jon Skeet    15 年前

    你想要Xnor,基本上:

    if (!(a ^ b))
    

    或者(更简单地说)

    if (a == b)
    

    在哪里? a b 是条件。

    样例代码:

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

    生成这个真值表;

    xnor(false, false) = true
    xnor(false, true) = false
    xnor(true, false) = false
    xnor(true, true) = true