我需要C#操作员的帮助

时间:2011-07-28 23:22:25

标签: c# .net operators xor

我有一个比较2个布尔值的程序,比如conditionX和conditionY。

两者最初都设置为false,但在一系列切换后,其中至少有一个变为true。

我需要测试conditionX和conditionY。如果其中任何一个出现为true,则测试返回true,但如果它们都返回false,则测试返回false。

这是我需要帮助的部分。如果它们都返回true,则测试必须返回FALSE。

而且,在这里,我正在画一个空白。我知道AND运算符只返回true,如果两者都为真,而OR运算符将返回true,如果其中至少有一个返回true。

如果两个运算符都返回true / false,是否会返回false,但如果其中至少有一个为真,则返回true?

7 个答案:

答案 0 :(得分:8)

尝试XOR

if(statement1 ^ statement2)
    doSomething();

答案 1 :(得分:7)

使用xor

conditionX ^conditionY

答案 2 :(得分:5)

答案 3 :(得分:5)

使用下面的首选。它们按照我的喜好列出。

conditionX ^ conditionY
// OR
conditionX != conditionY
// OR
(conditionX || conditionY) && !(conditionX && conditionY)

答案 4 :(得分:3)

试试这个:conditionX != conditionY

答案 5 :(得分:0)

如果您知道true == 1且false == 0,那么您可以按位xor ^。否则只需使用

(a||b)&&(!a||!b)

答案 6 :(得分:0)

XOR