Kapitel 3: Einfache Operatoren / 3.3 Arithmetische Operatoren / 3.3.4 Der unäre Minus- und Plus-Operator

Der unäre Minus-Operator (-a) wechselt das Vorzeichen des Operanden. Das Ergebnis wird zurückgegeben, der Wert der Variablen selbst aber nicht verändert.

Ist a eine positive Zahl, dann ist -a die negative Zahl mit dem selben Betrag wie a (zur Erinnerung: der Betrag streicht das Vorzeichen einer Zahl weg). Ist a eine negative Zahl, dann ist -a die positive Zahl mit dem selben Betrag.

Spätestens am Beispiel wird es sofort klar: Ist a = 3, dann ist -a gleich -3. Und ist a = -3, dann ist -a gleich 3. Mehr steckt nicht dahinter.

Bitte versuchen Sie nun einmal, die Werte der Variablen a bis d aus folgendem Code zu schließen:

var a = 5
var b = -a
var c = --a
var d = -(-a)

Ich hab’ Sie hier ein bisschen hereingelegt, aber von vorne:

Zunächst wird der Variablen a der Wert 5 zugewiesen, also a = 5. In der zweiten Zeile gibt -a den Wert -5 zurück, also ist b = -5.

In der dritten Zeile wird es komplizierter: Wird das Vorzeichen von a doppelt gewechselt, dann hat a wieder sein urspründliches Vorzeichen. a ist 5, also gibt --a den Wert 5 zurück und c = 5, ist das so korrekt?

Leider nein, denn --a ist der Dekrement-Operator. Hier wird zunächst a und eins verringert und das Ergebnis zurückgegeben, es gilt also: c = 4 (und a jetzt übrigens auch).

In der vierten Zeile geschieht nun das, was in der dritten vermeintlich geschah: -(-a) ist der doppelte Vorzeichenwechsel. Da a inzwischen 4 ist, ist nun auch d = 4.

Das unäre Minus kann auf Integer- und Gleitkommazahlen angewendet werden, bei Boolean und Tupeln funktioniert es aber nicht.

Das unäre Plus (+a) wird syntaktisch (bezüglich der Zeichensetzung) genauso verwendet wie das unäre Minus und es gelten auch die gleichen Einschränkungen bezüglich der zu verwendenden Typen.

Anders als das Minus, rechnet das Plus aber nicht, sondern gibt lediglich den Wert seines Operanden zurück.

Folglich wird es nur aus optischen Gründen verwendet, etwa wenn einer Liste negativer Zahlen eine Liste positiver Zahlen gegenübersteht und der Programmierer möchte, dass alles schön symmetrisch aussieht.

Man braucht das unäre Plus also nicht wirklich, aber weil es auch in vielen anderen Programmiersprachen vorhanden ist und nicht weiter stört.. Warum also nicht.

Kapitel 3.3.4: Der unäre Minus- und Plus-Operator

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.