Bearbeitungsreihenfolge bei Berechnungen

Status
Nicht offen für weitere Antworten.

siba

Bekanntes Mitglied
Hallo!

Ich habe untenstehendes Code, was beeinflußt die Bearbeitungsreihenfolge ? Warum wird Modulo nicht immer zuerst ausgeführt? Warum wird die Multiplikation nicht immer zuerst ausgeführt? Und welche Rolle spielt die Bearbeitunsreihenfolge von links nach rechts?


Code:
public class P {
        public static void main(String[] args) {
                System.out.println(10 * 5 % 2 + 4); // ergibt 4
                System.out.println(1 + 2 % 3 * 4); // ergibt 9
        }
}
 

KISS

Bekanntes Mitglied
wie man hier sehen kann haben multiplikation, modulo, division die gleiche asoziativitaet und prioritaet. insofern verstehe ich nicht warum modulo prioritisiert behandelt werden sollte
 

mic_checker

Top Contributor
Das dein erstes Beispiel 4 ergibt ist doch einfach:

Wie KISS schon geschrieben hat und wie du in den Links nachlesen kannst haben , sind die Operatoren linksassoziativ, * und % haben aber höhere Priorität als +.

Deshalb wird zuerst 10 * 5 = 50 gerechnet, dann 50 % 2 = 0 und 0 + 4 = 4.

2 % 3 = 2
2 * 4 = 8
1 + 8 = 9

Wenn du dir nicht sicher bist , einfach Klammern setzen.
 

Bleiglanz

Gesperrter Benutzer
Bevor du eine Sekunde auf sowas verschwendest, setz lieber gleich Klammern.

Andere Programmierer, die später deinen Code lesen müssen werden es dir danken....
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben