Мне нужна помощь с операторами C # - PullRequest
2 голосов
/ 29 июля 2011

У меня есть программа, которая сравнивает 2 логических значения, скажем, conditionX и conditionY.

Для обоих изначально установлено значение false, но после серии переключений хотя бы один из них становится истинным.

Мне нужно проверить и условиеX, и условиеY. Если один из них получит значение true, то тест вернет true, но если оба вернут false, тест вернет false.

И вот часть, с которой мне нужна помощь. Если они оба возвращают true, тест ДОЛЖЕН возвращать FALSE.

И вот, я рисую бланк. Я знаю, что оператор AND вернет true, только если оба имеют значение true, а оператор OR вернет true, если хотя бы один из них вернет true.

Есть ли оператор, который вернет false, если они оба вернут true / false, но вернет true, если хотя бы один из них верен?

Ответы [ 7 ]

8 голосов
/ 29 июля 2011

Попробуйте XOR

if(statement1 ^ statement2)
    doSomething();
7 голосов
/ 29 июля 2011

Используйте xor

conditionX ^conditionY
5 голосов
/ 29 июля 2011

Используйте предпочтительный снизу. Они перечислены в соответствии с моими предпочтениями.

conditionX ^ conditionY
// OR
conditionX != conditionY
// OR
(conditionX || conditionY) && !(conditionX && conditionY)
5 голосов
/ 29 июля 2011

Вы можете использовать оператор ^.

http://msdn.microsoft.com/en-us/library/zkacc7k1%28v=VS.100%29.aspx

3 голосов
/ 29 июля 2011

Попробуйте это: conditionX != conditionY.

0 голосов
/ 29 июля 2011
0 голосов
/ 29 июля 2011

если вы знаете, что true == 1 и false == 0, тогда вы можете применить побитовое xor ^.в противном случае просто используйте

(a||b)&&(!a||!b)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...