- - - Operator in Java

8

Ich frage mich, was macht der Operator -->-- in Java?

Zum Beispiel, wenn ich den folgenden Code habe:

%Vor%

Dies gibt immer wahr zurück.

Danke!

    
MarkusWillson 30.11.2014, 03:59
quelle

2 Antworten

26

In Java ist -->-- nicht wirklich ein Operator.

Was Sie geschrieben haben, ist tatsächlich if ((x--) > (--y)) .

Und wie wir aus dieser Antwort wissen, ist die -y vordekrementiert, während die x- postdecrement ist also ist dies im Grunde if (3 > 2) , was immer true zurückgibt.

    
416E64726577 30.11.2014, 04:03
quelle
2

Positcrement und preicrement sind sehr ähnliche Operatoren. Javas Bytecode gibt ein besseres Verständnis. Jeder von ihnen besteht aus zwei Operationen. Variable laden und inkrementieren. Der einzige Unterschied besteht in der Reihenfolge dieser Operationen. Wenn die Aussage aus Ihrem Fall folgendermaßen lautet:

%Vor%

Wenn JVM zu einer if-Anweisung kommt, hat es 3 und 2 auf dem Stack. Zeile 4 und 5 sind aus x-- zusammengestellt. Zeilen 8 und 11 von --y . x wird vor dem Inkrement geladen und y nach.

Übrigens ist es seltsam, dass Javac diesen statischen Ausdruck nicht optimiert.

    
Mikhail 09.12.2014 09:13
quelle