Java 运算符检查任一条件是不是为假,但不能同时为假或都不为假

Posted

技术标签:

【中文标题】Java 运算符检查任一条件是不是为假,但不能同时为假或都不为假【英文标题】:Java operator to check if either conditions are false, but not both or noneJava 运算符检查任一条件是否为假,但不能同时为假或都不为假 【发布时间】:2011-01-03 19:36:27 【问题描述】:

如果两个条件都为假,Java 中是否有一个运算符会给出假的结果,但如果两者都为真或都为假,则结果为真?

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

【问题讨论】:

【参考方案1】:

基本上你想要 XNOR:

if (!(a ^ b))

或(更简单)

if (a == b)

其中ab 是条件。

示例代码:

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

【讨论】:

Jon,在这种情况下显示 XOR 运算符的完整逻辑表可能会有所帮助。我会在这里做,但评论格式很糟糕。 谢谢,这正是我想要的!我知道有一个接线员,只是不记得了:) @James:我用一种更简单的方法编辑了这个 - 相等运算符! 另外,是的,!= 更简单。但是 !XOR 是这种情况下正确的布尔运算符。所以我还是最喜欢你的回答。 这个问题是在 Java 的上下文中给出的。在 Java 中,^ 符号表示位操作 XOR。

以上是关于Java 运算符检查任一条件是不是为假,但不能同时为假或都不为假的主要内容,如果未能解决你的问题,请参考以下文章

即使第一个条件为假,是不是所有条件都在 if 语句中进行检查?

Java初中级程序员面试题宝典

Java 逻辑运算符

IF 语句中的 jQuery OR 运算符检查任一文本字段是不是为空

Java 关系运算符

如果条件为假,我可以在Rust中使用什么运算符来返回特定错误?