プログラムでは、(関数から返された)2つのブール値をチェックしようとしています。チェックする必要のある条件は次のとおりです。
- 返された値のいずれかがtrueで他方がfalseの場合にのみ問題が発生します。
- そうでない場合は両方とも真または偽であれば、私は次のステップに進むことができます。java演算子(XORとAND/OR)で遊ぶ
状況を確認する効率的な方法はどれですか?それとも、より良い解決策がありますか?
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
}
おかげで、
イヴァー
P.S:コードの可読性が問題ではありません。 編集:私は2番目のオプションでXORを持つことを意味しました。 また、私は==と!=オプションに同意しますが、ブール演算子を使用する必要がある場合はどうしますか?
2番目の例で間違いがあるようです。 –
@Nikita:確かに、閉じ括弧。 –