0 Daumen
927 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?

Avatar 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.

Avatar 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

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community