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)
其中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
【讨论】:
Jon,在这种情况下显示 XOR 运算符的完整逻辑表可能会有所帮助。我会在这里做,但评论格式很糟糕。 谢谢,这正是我想要的!我知道有一个接线员,只是不记得了:) @James:我用一种更简单的方法编辑了这个 - 相等运算符! 另外,是的,!=
更简单。但是 !XOR 是这种情况下正确的布尔运算符。所以我还是最喜欢你的回答。
这个问题是在 Java 的上下文中给出的。在 Java 中,^
符号表示位操作 XOR。以上是关于Java 运算符检查任一条件是不是为假,但不能同时为假或都不为假的主要内容,如果未能解决你的问题,请参考以下文章
即使第一个条件为假,是不是所有条件都在 if 语句中进行检查?