在一个程序中,我试图检查两个布尔值(从函数返回)。需要检查的条件是:
-仅当返回值之一为true而另一个为false时,我才遇到问题;
-否则,如果都为真或为假,则可以继续执行下一步。
以下两个示例中的哪一个是检查状况的有效方法,还是有更好的解决方案?
a和b是我正在检查isCorrect
函数中的正确性条件的整数值,并且它返回true或false。
1。
// checking for the correctness of both a and b
if ((isCorrect(a) && !isCorrect(b)) ||
(!isCorrect(a) && isCorrect(b)))
{
// a OR b is incorrect
}
else
{
// a AND b are both correct or incorrect
}
2。
// checking for the correctness of both a and b
if (! (isCorrect(a) ^ isCorrect(b)))
{
// a OR b is incorrect
}
else
{
// a AND b are correct or incorrect
}
谢谢,
伊瓦
附注:代码可读性不是问题。
编辑:我的意思是在第二个选项中有一个XOR。
另外,我同意==和!=选项,但是如果必须使用布尔运算符怎么办?
最佳答案
if (isCorrect(a) != isCorrect(b)) {
// a OR b is incorrect
} else {
// a AND b are correct or incorrect
}