Ich habe in einem Java-Programm folgende Variablen gefunden: ++BildZaehler und BildZaehler++. Der ++-Operator wird der Variablen einmal voran- (Präfix) und einmal nachgestellt (Postfix). Was bedeutet das für die Variablen? Oder ist das Doppelplus Bestandteil des Namens und es handelt sich damit um zwei unterschiedliche Variablen?
Karl das mag stimmen, aber nichtsdestotrotz ist es eher selten der Fall, dass man sowohl inkrementiert als auch ausgibt (bzw. eine andere Aktion mit der Variablen ausführt) im gleichen Schritt. Entweder man will die "5" ausgeben, dann inkrementiert man erst danach, oder man will gleich die 6 ausgeben, dann inkrementiert man sofort (Gleiches gilt fürs dekrementieren)... es ist einfach übersichtlicher
Wieso sollte man das nicht so machen? Außerdem, wenn es so vorgesehen wäre, dann gebe es auch nur eine Variante. Denn der Unterschied liegt nur bei dem zurückgegebenen Wert. (siehe meine Antwort)
OK OK. Das ganz ist schon fast akademischer Natur.
Noch ein Beispiel: for (i = 0; i++ < 10; ) {System.out.println(i);}
for (i = 0; ++i < 10; ) {System.out.println(i);}
Das sind beides gültige For-Schleifen. Unschön, ich mache das normaler Weise nicht so, aber hier geht es auch nicht darum ob etwas schön ist, sondern um den Unterscheidn zwischen Pre und Post Inkrement. Und der existiert auf jeden Fall. Auch sowas gibt es: int i = 0; while(condition()){ Object o = getMyObject(i++); } Und auch hier macht es einen Unterschied, ob Pre oder Post ...
Also die while-schleife fänd ich persönlich schon übersichtlicher, wenn sie so wär: int i = 0; while(condition()){ Object o = getMyObject(i); i++; } oder ebend entsprechend dem pre-inkrement... also wenn nicht beim methodenaufruf incrementiert wird (egal ob pre oder post), sondern entsprechend davor oder danach!
int i = 5;
int x = 5;
System.out.println(i++); // -> 5
System.out.println(++x); // -> 6
System.out.println(i); // -> 6
System.out.println(x); // -> 6
Es spielt schon ein Rolle wann wie welcher Wert hochgesetzt wird.
Gruß Karl