0 Daumen
52 Aufrufe

for(int x=1;x<=6;x++) {
    for(int y=1;y<=x;y++ {
      System.out.println("z");
    }
}

2 Fragen dazu:

1.) Wieso kommt am Ende mehr als 6 mal z raus? Die erste for-Schleife geht ja nur bis <=6, das heißt es müssen doch genau 6 mal z in der Ausgabe sein....

2.) Allgemein findet bei der for-Schleife die Inkrementierung erst nach dem Befehl statt oder?

Gefragt von

1 Antwort

+2 Daumen

Die erste for-Schleife geht ja nur bis <=6, das heißt es müssen doch genau 6 mal z in der Ausgabe sein....

Aber die innere Schleife geht ja immer von 1 bis x. Kann man vielleicht sich so vortellen

        x                 y                  out
        1                 1                    z
        2                 1                    zz
                           2                   zzz
        3                 1                  zzzz
                           2                  zzzzz
                          3                   zzzzzz
        4        noch 4 mal z dazu
       5         noch 5 mal z dazu
        6        noch 6 mal z  mal

müssten dann am Ende 1+2+3+4+5+6 = 21 z da stehen.

2. stimmt wohl, allerdings findet der Check eingangs statt.

Beantwortet von

Wie läuft denn das Programm genau ab nachdem die erste Zeile durchlaufen ist?

Mir ist es jetzt klar.

Aber wieso wird das immer addiert? Macht dies die for-Schleife etwa auch?

Nein. ich denke die "z" stehen alle untereinander

wegen  "println".

Ja, aber wieso wird z immer um eins erhöht?

Die innere Schleife [d.h. das y] läuft von 1 bis x. Darum kommt dann in jeder inneren Schleife x mal z raus.

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

0 Daumen
1 Antwort
Gefragt 9 Apr von Gast
+1 Punkt
0 Antworten
Gefragt 23 Aug von Gast

Willkommen bei der Stacklounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community
...