Modulo operation

arhzz

Bekanntes Mitglied
Hallo lieben! Ich bin nicht ganz sicher wie dieser kleiner Programm funktioniert.Nämlich ist der int wert von 'd' in der ASCII Tabelle 100,und der Teil (++c) soll den wert um 1 erhöhen (preincrement) also ist der wert 101 modulo den wert von c 100 (c-- ist postincrement also bleibt der wert 100). Also 101%100 sollte doch 1 sein,aber die Ausgabe ist 0.Das sollte bedeuten dass die Operation 100%100 war,aber wie kann dass sein.Hat die modulo operation Priorität, und auch der preincrement passiert nach der modulo operation? Ich fällt nichts anderes ein,vielleicht kann es jemand aufklären. Danke!

Java:
public class test2 {
    public static void main(String[] args) {
        char c = 'd';
        
    Out.println(++c % c--);
    }
}
 
Also, an der Präzedenz liegt es nicht, denn ++ und -- haben eine höhere Präzedenz: https://introcs.cs.princeton.edu/java/11precedence/

Effektiv liegt aber das vor:
Java:
        int i = 100;
        System.out.println((++i) % i);
        i--;

zuerst wird i erhöht (101), dann i%i gerechnet (101%101) - das ist 0. i-- kommt erst nach der Ausgabe dran.

Oh ja genau, ich habe voll vergesen dass man den wert auch speichert.Danke für den Link und die Antwort!
 

Zurück
Oben