Vorlesung Informatik 1 - Teil A: Java Kurs
3.4 Die for-Schleife
Syntax:
for(anweisung1 ; <log. Ausdruck> ; anweisung2) {
anweisung3;
}
Das ist äquivalent zu den folgenden Anweisungen:
anweisung1;
while(<log.Ausdruck>){
anweisung3;
anweisung2;
}
Es handelt sich also nur um eine kompakte Schreibweise für eine while Schleife mit einer Anfangsbedingung.
Die for-Schleife ist auch vorgetestet, d.h. sie wird eventuell nie durchlaufen.
In der Regel wird sie für deterministische Schleifen, meist Zähl-Schleifen verwendet.
Beispiele:
for(int i=0;i<10;i++) ... // [0,1,...,9] Die
Variable i ist nur innerhalb der Schleife sichtbar
for(int k=10; k>0; k--) ... // [10, 9, ... , 1]
- k und i heißen Schleifenzähler (Laufvariable)
- Vermeiden Sie, den Schleifenzähler zusätzlich im Schleifenrumpf zu ändern - das sind Probleme vorprogrammiert.
- Für nicht-Zählschleifen ist die while-Schleife im Allgemeinen besser geeignet.
Für rechteckige Anordnungen (Schachbrett) schachtelt man zwei for-Schleifen ineinander:
for(int i=0;i<8;i++){
for(j=0;j<8;j++){
...
}
}
wenn
die innere Schleife nicht bei 0 sondern i startet, oder nur bis i läuft, entsteht ein dreieckiges
Muster:
for(int i=0;i<8;i++){
for(int i=0;i<8;i++){
for(j=i;j<8;j++){
for(j=0;j<i;j++){
...
...
}
}
}
}
Eine erweiterte Form der for-Schleife läuft über Collection-Klassen (später auch Arrays):
LinkedList<SpielFigur> figuren = new LinkedList<SpielFigur>();
// Zum erzeugen von 20 Spielfiguren verwenden wir eine Zählschleife
for(int i=0;i<20;i++) figuren .add(new
Spielfigur(i, 10*i, 20, 20, this);
for(SpielFigur f:figuren) f.bewege(); // das ist bequemer als eine Zählschleife
Weiterführende Links
Die for-Schleife in Java ist auch eine Insel