排他的論理和 (2 つのオペランドの場合は XOR と呼ばれます) 演算子を複数の述語に適用する方法はありますか?
たとえばp
、q
とr
が 3 つの述語 (つまり、ブール変数) であるとします。if
以下のような条件を書きたいと思います。
if ((p || q || r) && !(p && q && r))
つまり、条件の少なくとも 1 つが true であるが、すべてが true ではない場合、条件を true にする必要があります。
どうやらif (p ^ q ^ r)
動作しないようです (ケースp=true
とq=true
を考慮してくださいr=false
)
ありがとうございました。
C言語については良い回答が得られましたが、 C#に解決策があることを知るのは興味深いことです。