Ich habe drei boolesche Werte A, B und C. Ich muss eine IF-Anweisung schreiben, die genau dann ausgeführt wird, wenn nicht mehr als einer dieser Werte True ist. Mit anderen Worten, hier ist die Wahrheitstabelle:Wie schreibe ich den folgenden booleschen Ausdruck?
A | B | C | Result
---+---+---+--------
0 | 0 | 0 | 1
0 | 0 | 1 | 1
0 | 1 | 0 | 1
0 | 1 | 1 | 0
1 | 0 | 0 | 1
1 | 0 | 1 | 0
1 | 1 | 0 | 0
1 | 1 | 1 | 0
Was ist der beste Weg, dies zu schreiben? Ich weiß, dass ich alle Möglichkeiten aufzählen kann, aber das scheint ... zu ausführlich. : P
Hinzugefügt: hatte nur eine Idee +!
(A & & B) & & (B & & C) & & (A & & C)
Prüft dass keine zwei Werte gesetzt sind. Der Vorschlag über Summen ist auch OK. Noch mehr lesbar vielleicht ...
(A 1: 0) + (B 1: 0) + (? C 1: 0) < = 1
P. S. Dies ist für den Produktionscode, daher gehe ich mehr auf Code-Lesbarkeit als auf Leistung.
Hinzugefügt 2: Bereits akzeptierte Antwort, aber für die Neugierigen - es ist C#. :) Die Frage ist jedoch ziemlich sprachunabhängig.
Summe gleich 1 oder 0. – Vicky
, dass die Summe auf 1 – Josh
hoppla kleiner oder gleich ist, diese Bedingung verfehlt, ja =) –