Wie funktioniert diese FOR-SCHLEIFE (Java)?

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Start mit i = 1

Anweisung i += i
--> i=2

Ausgabe von i (2)

Anweisung i++
--> i = 3

Anweisung i += i
--> i = 6

Ausgabe von i (6)

usw.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

plzhelp01 
Beitragsersteller
 30.09.2022, 21:47

Danke, verständlichste Antwort!

MrAmazing2  01.10.2022, 02:37
@plzhelp01

Das freut mich!

War für mich auch immer am verständlichsten einfach Schritt für Schritt durchzugehen was der Code denn macht ^^

Jede For-Schleife lässt sich analog als while-Schleife schreiben.

for (statement1; statement2; statement3) {
  // code
}

entspricht dieser while-Schleife:

statement1;
while (statement2) {
  // code
  statement3;
}

Konkret in deinem Fall wäre

for (int i = 1; i <= 1000; i++) {
  i += i;
  System.out.println(i);
} 

äquivalent zu

int i = 1;
while (i <= 1000) {
  i += i;
  System.out.println(i);
  i++;
}

i++, das dritte Statement im Schleifenkopf, wird also immer nach dem Schleifenkörper ausgeführt.

Tabellarisch sieht das so aus:

Bild zum Beitrag

Wie du siehst, ist das Ende einer Zeile der Beginn der nächsten Zeile - außer am Anfang, da wird es halt auf 1 gesetzt.

Die erste Zeile im Schleifenkörper rechnet i += i, oder analog i *= 2 ... Der Wert von i vor der Ausgabe wird also immer verdoppelt (im Vergleich zum Beginn).

Dann geschieht die Ausgabe (Reihe "Syso" im Bild), und anschließend wird noch 1 addiert (durch das i++, Reihe "Ende" im Bild)

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)
 - (programmieren, Java, Code)