在一个程序中,我试图检查两个布尔值(从函数返回)。需要检查的条件是:
-仅当返回值之一为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
}

07-24 07:26