Operatorenpräzedenz

KogoroMori21

Aktives Mitglied
Guten Tag liebes Java-Forum,
ich habe eine Frage zur Ausgabe, und zwar verstehe ich nicht warum 0 ausgegeben wird. Meines Wissens nach sollte da doch 1/-1 stehen und als Ergebnis -1 rauskommen, da "z++" ja noch nicht ausgeführt wird.

[CODE lang="java" title="Ausgabe"] public static void main(String[] args) {
int i = 202;
String s = "MI";
int z = 0;

System.out.println(z++ +1/z-1);

}
}[/CODE]
 
Beste Antwort
K
Es gilt immer noch Punkt vor Strich Rechnung.

Die genaue Reihenfolge, in der die Operatoren abgearbeitet werden, findet sich:

Und ganz oben ist das Postfix. (Nur eben wird erst der Wert von z genommen, damit hast Du in der Rechnung die 0, aber z ist dann im Nachfolgenden 1.

Dann kommt die Division: 1/z ist 1/1 = 1.

Dann kommen Addition und Subtraktion.
K

kneitzel

Gast
Es gilt immer noch Punkt vor Strich Rechnung.

Die genaue Reihenfolge, in der die Operatoren abgearbeitet werden, findet sich:

Und ganz oben ist das Postfix. (Nur eben wird erst der Wert von z genommen, damit hast Du in der Rechnung die 0, aber z ist dann im Nachfolgenden 1.

Dann kommt die Division: 1/z ist 1/1 = 1.

Dann kommen Addition und Subtraktion.
 
Beste Antwort

Neue Themen


Oben