Der Logikoperator NOT


Der logische Not-Operator ! ist ein unärer Operator - d.h. er behandelt nur einen Operanten. (Fast alle Operanten, die wir gesehen haben, sind binäre Operatoren; sie nehmen zwei Operanten auf. Der bedingte Operator ist der einzige ternäre Operator in C++.) Die Wirkung des NOT-Operators ! besteht darin, daß der logische Wert seines Operanten in das Gegenteil verkeht (negiert) wird: Wenn etwas wahr ist, macht ! es zu einer unwahren Aussage, wenn der Operator falsch ist, macht ! ihn zu einer wahren Aussage. Zum Beispiel: (x==7) ist wahr, wenn x gleich 7 ist, aber !(x==7) ist wahr, wenn x nicht gleich 7 ist. (In dieser Situation können Sie auch den Ungleich-Operator x!=7 verwenden, um dasselbe Ziel zu erreichen.)

Stellen Sie sich vor, daß Sie in Ihrem Abenteuerspiel an allen Orten einen Pilz plazieren wollten, an dem sowohl die x- als auch die y-Koordienate ein Vielfaches von 7 sind. (Wie vieleicht bekannt ist, verleihen die Pilze den Spieler magische Kräfte, wenn sie von ihm verzehrt werden.) Der verbleibende Rest von x geteilt durch 7, welcher mit dem Ausdruck x&7 berechnet werden kann, ist nur dann 0, wenn x ein Vielfaches von 7 ist. Um die Position der Pilze zu bestimmen, können wir also folgendes schreiben:

if( x%7==0 && y%7==0 ) cout << "Hier ist ein Pilz.\n";

Wenn Sie sich zurückrufen, daß ausdrücke wahr oder unwahr sind, selbst wenn sie keinen Verkleichsoperatoren einschließen, können Sie den Operator ! einsetzen, um eine prägnante Form zu erhalten:

if( !(x%7) && !(y%7) ) // Wenn nicht x%7 und nicht y&7

diese Ausdrucksform hat genau dieselbe Wirkung.

Zusammenfassung der Bewertungsreihenfolge

Lassen Sie uns die Fakten der Bewertungsreihenfolge für die Operatoren zusammenfassen, die wir bis jetzt kennengelernt haben. Die Operatoren, Die in der Liste weiter oben stehen, genießen Vorang vor denen, die in der Liste unter ihnen stehen. Operatoren mir höheren Rang in der Bewertungsreihenfolge werden vor denen mit niedrigerem Rang berechnet. Operatoren in derselben Reihe haben den gleichen Rang. Sie können erzwingen, daß ein Ausdruck vorrangig berechnet wird, indem Sie runde Klammern um ihn setzen.

Arithmetisch Vergleich Logische
Operatortyp Operatoren
Unär !, ++, --, -
Multiplikativ *, /, %
Additiv +, -
Ungleichheit <, >, <=, >=
Gleichheit ==, !=
und &&
oder ||
Bedingung ?:
Zuweisung =, +=, -=, *=, /=, %=


25