在Java中是否有一种运算符,如果两个条件都为真或假,结果为true,但如果其中一个条件为假,则结果为false?
我有一些代码依赖于用户输入一些值来运行进程。由于用户只能输入x或y,而不能同时输入或不输入任何值,因此我希望在这种情况下显示错误消息。
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
!=
更简单。但是在这种情况下,!XOR是正确的布尔运算符。所以我仍然最喜欢你的答案。 - jdmichal