2011-07-28 87 views
2

我有一个程序比较2个布尔值,比如说conditionX和conditionY。我需要C#操作员的帮助

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

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

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

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

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

回答

7

使用的XOR

conditionX ^conditionY 
+0

感谢所有回答的人。这工作。 –

0

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

(a||b)&&(!a||!b) 
+2

在C#中,'^'适用于布尔值,而不用担心数值上表示“true”或“false”。 – GalacticCowboy

8

尝试XOR

if(statement1^statement2) 
    doSomething(); 
3

试试这个:conditionX != conditionY

5

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

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

+1适用于不同的方法。 – Jeyara