有什么区别:
if ((x <= 19 & x >= 13) ^ (y <= 19 & y >= 13))
{
System.out.print(true);
}
else
{
System.out.print(false);
}
和
if (x <= 19 && x >= 13 || y <= 19 && y >= 13)
{
System.out.print(true);
}
else
{
System.out.print(false);
}
请您详细解释一下运营商^
?请提供一些例子。
答案 0 :(得分:1)
^
条件运算符是XOR
的更多数学术语,它来自Exclusive or
。 (见this)
所以XOR返回true,你的左手边条件必须与右边条件不同,否则是假的。
例如你的条件if((x <= 19&amp; x&gt; = 13)^(y <= 19&amp; y&gt; = 13))将仅返回 true 这两种情况:
1)(x <= 19&amp; x&gt; = 13) true 且(y <= 19&amp; y&gt; = 13) false 强>
2)(x <= 19&amp; x&gt; = 13)假并且(y <= 19&amp; y&gt; = 13) true 强>
仅在以下两种情况下返回 false :
1)(x <= 19&amp; x&gt; = 13) true 且(y <= 19&amp; y&gt; = 13) true 强>
2)(x <= 19&amp; x&gt; = 13) false 并且(y <= 19&amp; y&gt; = 13) false 强>
这也很有用(可以在我为您提供的上述链接中提供)