请用示例解释Java ^运算符

时间:2014-11-19 00:29:24

标签: java

有什么区别:

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

请您详细解释一下运营商^?请提供一些例子。

1 个答案:

答案 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

这也很有用(可以在我为您提供的上述链接中提供) enter image description here