我有一个比较2个布尔值的程序,比如conditionX和conditionY。
两者最初都设置为false,但在一系列切换后,其中至少有一个变为true。
我需要测试conditionX和conditionY。如果其中任何一个出现为true,则测试返回true,但如果它们都返回false,则测试返回false。
这是我需要帮助的部分。如果它们都返回true,则测试必须返回FALSE。
而且,在这里,我正在画一个空白。我知道AND运算符只返回true,如果两者都为真,而OR运算符将返回true,如果其中至少有一个返回true。
如果两个运算符都返回true / false,是否会返回false,但如果其中至少有一个为真,则返回true?
答案 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)