2011-07-28 89 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