2011-07-28 16 views
2

私は2つのブール値、例えばconditionXとconditionYを比較するプログラムを持っています。私はC#演算子の助けが必要です

両方とも最初はfalseに設定されていますが、一連のスイッチの後で少なくとも1つが真になると、

私はconditionXとconditionYの両方をテストする必要があります。どちらか一方が真である場合、テストはtrueを返しますが、両方がfalseを返す場合、テストはfalseを返します。

ここで私は助けが必要な部分です。両方がtrueを返す場合、テストはFALSEを返さなければなりません。

ここでは空白を描いています。 AND演算子は両方が真である場合にのみtrueを返し、少なくとも1つが真を返す場合にはOR演算子がtrueを返すことはわかっています。

どちらもtrue/falseを返した場合はfalseを返しますが、少なくとも1つが真であればtrueを返します。

答えて

7

あなたは^演算子を使用することができますXOR

conditionX ^conditionY 
+0

お返事いただいた皆様に感謝します。それはうまくいった。 –

0

真== 1、偽== 0が分かっていれば、ビット単位のxor ^とすることができます。そうでない場合は、単に

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

C#では、「true」または「false」が数値的にどのようなものであるかを気にせずに、 '^'はブール値として機能します。 – GalacticCowboy

5
+0

なぜ-1(なぜ私はそれがbizareだと思うので) –

+0

@ルーン、私はDVをしなかったが、演算子は 'スラッシュバックスラッシュ'ではありません。それはキャレットです: '^' –

+0

私は下の投票がbizareであることを意味します。 –

8

するTry XOR

if(statement1^statement2) 
    doSomething(); 
3

はこれを試してみてください:conditionX != conditionY

5

以下の中からお選びください。彼らは私の好みに従ってリストされています。

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

+1異なるアプローチ。 – Jeyara

関連する問題