Operatorenpräzedenz

KogoroMori21

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.

Ausgabe:
    public static void main(String[] args) {
        int i = 202;
        String s = "MI";
        int z = 0;
        
        System.out.println(z++ +1/z-1);
        
    }   
}
 
Beste Antwort
kneitzel
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.
kneitzel

kneitzel

Top Contributor
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

Oben