i++ vs ++i

Status
Nicht offen für weitere Antworten.

A3XX

Bekanntes Mitglied
HI

Ich verstehe noch nicht ganz wie sich der Unterschied auswirkt. ++i heisst ja, dass i zuerst erhöht wird und dann mit i gearbeitet wird oder nicht?

also z.B.

Code:
i = 3
s = ++i //s ist jetzt 4, i auch

i = 3
s= i++ //s ist jetzt 3, i 4?

Stimmt das?

Und bei Schleifen verstehe ich es gar nicht mehr:
Code:
for(int i=0; i<=10; i++)

Das habe ich immer gemacht. Aber was bedeutet dann:
Code:
for(int i=0; i<=10; ++i)
 
N

nastrovje

Gast
Code:
for(int i=0;i<5;++i) {
bevor die erste anweisung in der schlaufe ausgeführt wird, wird i erhöht

Code:
for(int i=0;i<5;i++) {
i wird nach dem Durchlaufen der Schlaufe erhöht
 
B

bygones

Gast
nastrovje hat gesagt.:
Code:
for(int i=0;i<5;++i) {
bevor die erste anweisung in der schlaufe ausgeführt wird, wird i erhöht

Code:
for(int i=0;i<5;i++) {
i wird nach dem Durchlaufen der Schlaufe erhöht
mhm - wenn ich das richtig verstanden habe:
Code:
 for (int i = 0; i < 5; i++) {
            int k = i*2;
            System.out.println(k);
        }
        for (int i = 0; i < 5; ++i) {
            int k = i*2;
            System.out.println(k);
        }
wenn in der zweiten for - schleife das i erhöht wird bevor die erste anwendung ausgeführt wird, warum erhalte ich dann in beiden Fällen als Ausgabe:
Code:
0
2
4
6
8
oder steh ich aufm Schlauch ?
 

Illuvatar

Top Contributor
Code:
i++
erhöht i um 1 und liefert als Ergebnis das alte i.
Code:
++i
erhöht i um 1 und liefert als Ergebnis das neue i.

Der Unterschied ist also nur vorhanden, wenn das Ergebnis der Operation weiterverarbeitet wird.
Zum Beispiel hier:
Code:
int x = array[i++];
benutzt den alten i-Wert.

In einer Schleife steht:
Code:
for (int i = 0; i < 15; i++) //Seit 1.5 hab ich for-Schleifen ganz verlernt:)
Da wird folgende Anweisung ausgeführt:
Code:
i++;
Das Ergebnis der Operaion wird nicht weiterverarbeitet, ++i würde dasselbe bewirken.
 

A3XX

Bekanntes Mitglied
Besser kann mans glaube ich nicht erklären :) Danke dir (und allen anderen natürlich auch 8)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben