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

Zu den Lehrvideo (YouTube)