Frage zur for Schleife in Java?

Ich habe mal eine Frage zu for Schleife bei Java mit arrays (f[ ]).
ich habe folgende schleife:

for (int k=0; k<7; k++) { f[k]=k*k;}

die Frage ist, wann wird das k++ gerechnet. bevor der pc das in den geschweiften Klammern ausführt oder dann nach? Also ob beim Ersten Durchlauf jetzt 0<7; 0+1=1; und dann f[1]=1*1 gerechnet wird oder 0<7 f [0]=0*0 und dann 0+1=1?

Anonym2009-05-28T09:07:07Z

Beste Antwort

In Java (wie übrigens auch bei C und C++) gibt es denn Operator ++ vor und nach dem Variablenbezeichner.

Beispiel:
int i = 0;
int j = i++; // j = 0;
- oder
int i = 0;
int j = ++i; // j = 1;

In for-Schleifen dagegen wird die Operation immer (!!) erst nach dem jeweiligen Schlefendurchlauf ausgeführt (beide Varianten wären also gleichwertig), während es in while-Schleifen einen Unterschied machen würde (++i oder i++);

In Deinem Beispiel würden also folgende Operationen durchgeführt:
f[0] = 0 * 0;
f[1] = 1 * 1;
f[2] = 2 * 2;
....
f[6] = 6 * 6;

@perihell:
Deine Aussage stimmt leider nicht in einer for-Schleife. Hier wird die Operation immer erst nach dem ersten Schleifendurchlauf ausgeführt, egal ob dass ++ vor oder hinter der zu inkrementierenden Variable steht. Lass Dir das von jemandem sagen, der den ganzen Tag nichts anderes macht, als in Java zu programmieren!

perihell2009-05-29T14:46:15Z

k++ gibt erst den Wert zurück und zählt dann hoch.

++k (das geht auch) würde erst hochzählen und dann den Wert zurückgeben (in deinem Beispiel also 1)

dr_ramazzotti2009-05-28T08:52:36Z

Hallo,

also bei PHP würde k NACH dem ersten durchlauf hochgezählt, so dass in Deinem Beispiel 7 Läufe stattfinden würden...

Denke bei Java wird es gleich sein...

Gruss Dr.R.