Per Definition ist ein unärer Operator ein Operator, der genau einen Operanden oder eine Variable erfordert
Funktion. Sie führen oft einfache Aufgaben aus, wie z. B. das Erhöhen von a
numerische Variable um eins oder Negieren eines booleschen Werts.
Logische Komplement- und Negationsoperatoren
Der logische Komplementoperator ! dreht den Wert eines booleschen Ausdrucks um. Zum Beispiel
Wenn der Wert wahr ist, wird er in falsch umgewandelt und umgekehrt. Um dies zu veranschaulichen, vergleichen Sie
die Ausgaben der folgenden Anweisungen:
boolean x = false; System.out.println(x); // false x = !x; System.out.println(x); // true
Ebenso kehrt der Negationsoperator, - das Vorzeichen eines numerischen Ausdrucks um, wie gezeigt
in diesen Aussagen:
double x = 1.21; System.out.println(x); // 1.21 x = -x; System.out.println(x); // -1.21 x = -x; System.out.println(x); // 1.21
Anhand der Beschreibung könnte es offensichtlich sein, dass einige Operatoren die Variable benötigen
oder Ausdruck, auf den sie reagieren, als von einem bestimmten Typ. Beispielsweise können Sie sich nicht bewerben
Sie können weder einen Negationsoperator (-) auf einen booleschen Ausdruck anwenden, noch können Sie ein logisches Komplement anwenden
Operator ! zu einem numerischen Ausdruck. Seien Sie vorsichtig bei Fragen in der Prüfung, die dies versuchen,
da sie dazu führen, dass der Code nicht kompiliert werden kann. Beispielsweise keine der folgenden Codezeilen
wird kompilieren:
int x = !5; // DOES NOT COMPILE boolean y = -true; // DOES NOT COMPILE boolean z = !0; // DOES NOT COMPILE
Die erste Anweisung wird nicht kompiliert, da Sie in Java keine
ausführen können
logische Umkehrung eines numerischen Werts. Die zweite Anweisung wird nicht kompiliert, weil Sie
kann einen booleschen Wert nicht numerisch negieren; Sie müssen den logischen Umkehroperator verwenden.
Schließlich lässt sich die letzte Anweisung nicht kompilieren, da Sie weder das logische Komplement eines numerischen Werts annehmen noch einer booleschen Variablen eine Ganzzahl zuweisen können.
in Java 1 und true sind in nicht verwandt
Wie dem auch sei, genauso wie 0 und false nichts miteinander zu tun haben.Inkrementierungs- und Dekrementierungsoperatoren
Inkrement- und Dekrementoperatoren bzw. -- können auf numerische Werte angewendet werden
Operanden und haben im Vergleich zu binären Operatoren eine höhere Ordnung oder Priorität. Im
Mit anderen Worten, sie werden oft zuerst auf einen Ausdruck angewendet.
Inkrement- und Dekrementoperatoren erfordern aufgrund ihrer Reihenfolge besondere Sorgfalt
Die Anwendung auf den zugehörigen Operanden kann einen Unterschied in der Art und Weise machen, wie ein Ausdruck verarbeitet wird. Wenn der Operator vor dem Operanden platziert wird, der als Vor-Inkrement-Operator und Vor-Dekrement-Operator bezeichnet wird, wird der Operator zuerst angewendet und der Wert zurückgegeben
ist der neue Wert des Ausdrucks. Alternativ, wenn der Operator nach dem Operanden steht,
Wird als Post-Inkrement-Operator und Post-Dekrement-Operator bezeichnet, wird der ursprüngliche Wert des Ausdrucks zurückgegeben, wobei der Operator nach der Rückgabe des Werts angewendet wird.
Hier ist die Beispielillustration:
boolean x = false; System.out.println(x); // false x = !x; System.out.println(x); // true
Der erste Vorinkrementoperator aktualisiert den Wert für den Zähler und gibt den neuen aus
Wert von 1. Der nächste Post-Dekrement-Operator aktualisiert ebenfalls den Wert des Zählers, gibt aber
aus
der Wert vor der Dekrementierung.
Eine gängige Praxis bei einer Zertifizierungsprüfung, wenn auch in der Praxis weniger verbreitet, ist
Wenden Sie mehrere Inkrementierungs- oder Dekrementierungsoperatoren auf eine einzelne Variable in derselben Zeile an:
double x = 1.21; System.out.println(x); // 1.21 x = -x; System.out.println(x); // -1.21 x = -x; System.out.println(x); // 1.21
Dieses Beispiel ist komplizierter als das vorherige Beispiel, da x um drei geändert wird
Mal auf der gleichen Linie. Bei jeder Änderung bewegt sich der Ausdruck von links nach rechts
Der Wert von x ändert sich, wobei der Variablen unterschiedliche Werte zugewiesen werden. Wie Sie sich erinnern werden
Aus unserer Diskussion über die Priorität der Operatoren geht hervor, dass die Reihenfolge der Operationen eine wichtige Rolle spielt
Bewertung dieses Beispiels.
Wie lesen Sie diesen Code? Zuerst wird das x inkrementiert und an den Ausdruck zurückgegeben,
was mit 5 multipliziert wird. Wir können dies vereinfachen:
int x = !5; // DOES NOT COMPILE boolean y = -true; // DOES NOT COMPILE boolean z = !0; // DOES NOT COMPILE
Als nächstes wird x dekrementiert, aber der ursprüngliche Wert von 4 wird im Ausdruck verwendet, was zu
führt
dies:
int counter = 0; System.out.println(counter); // Outputs 0 System.out.println(++counter); // Outputs 1 System.out.println(counter); // Outputs 1 System.out.println(counter--); // Outputs 1 System.out.println(counter); // Outputs 0
Die endgültige Zuweisung von x reduziert den Wert auf 2, und da es sich um einen Vorinkrementoperator handelt, wird dieser Wert an den Ausdruck zurückgegeben:
int x = 3; int y = ++x * 5 / x-- + --x; System.out.println("x is " + x); System.out.println("y is " + y);
Zuletzt werten wir das Vielfache und die Division von links nach rechts aus und schließen mit der Addition ab. Das Ergebnis wird dann gedruckt:
int y = 4 * 5 / x-- + --x; // x assigned value of 4
Zusammenfassend lässt sich sagen, dass unäre Operatoren den Code vereinfachen und rationalisieren, indem sie schnelle Einzeloperandenoperationen wie das Erhöhen, Negieren oder Invertieren von Werten ermöglichen. Sie sind für effiziente Logik, kompakte Ausdrücke und präzise Kontrolle über Daten unerlässlich und verbessern die Lesbarkeit und Funktionalität bei der Programmierung.
Das obige ist der detaillierte Inhalt vonArbeiten mit unären Operatoren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!