Schleife

Aus Wiki Herr Kimmig
Wechseln zu: Navigation, Suche


Soll ein Befehl oder eine Befehlsabfolge mehrfach hintereinander ausgeführt werden, so benutzt man eine sogenannte Schleife. Es gibt hierbei verschiedene Schleifenarten, die wichtigsten sind die while- und die for-Schleife.

while-Schleife

Die while-Schleife wird so oft durchlaufen, solange eine Bedingung erfüllt wird. Sie ist deshalb vom Aufbau her mit einer if-Bedingung zu vergleichen.

Betrachten wir als reales Beispiel einen Bezahlvorgang eines Getränkeautomaten. Hier muss der Käufer Geld einwerfen solange noch nicht der gesamte Betrag bezahlt wurde:

while ( bezahlt < betrag ) {
    [...] // Geld einwerfen
}

Genauso wie bei einer if-Bedingung wird auch hier die Bedingung, wie lange die Schleife durchlaufen werden soll, in die Klammer geschrieben. Ebenso folgt unmittelbar darauf ein Befehlsblock eingeschlossen mit geschweiften Klammern. Da dieser Befehlsblock noch zur while-Schleife dazugehört darf dazwischen kein Semikolon stehen!

for-Schleife

Mit der while-Schleife könnte man auch einen Ablauf programmieren, bei dem die Anzahl der Schleifendurchläufe im Vorfeld festgelegt wird. Dazu benutzt man einen Zähler, der vor der Schleife auf null gesetzt wird und im Schleifendurchlauf, also im Befehlsblock jeweils erhöht wird:

int zaehler = 0;
while ( zaehler < 10 ) {
    [...] // Befehle
    zaehler = zaehler + 1;
}

Diese Schleife wird also genau 10 Mal durchlaufen.

Da man dieses Konstrukt aber oft benötigt, gibt es speziell hierfür die sogenannte Zählschleife oder eben for-Schleife. Hierbei kann das Anlegen und Erhöhen der Zähl-Variable verkürzt geschrieben werden als:

for ( int zaehler = 0 ; zaehler < 10 ; zaehler = zaehler + 1 ) {
    [...] // Befehle
}

Wie wir sehen können besteht der Kopf der for-Schleife jetzt aus 3 Befehlen:

  1. die Anweisung, die vor dem ersten Schleifendurchlauf ausgeführt werden soll
  2. die Bedingung, wie lange bzw. wie oft die Schleife durchlaufen werden soll
  3. der Befehl, der als letztes nach den andern Befehlen in jedem Schleifendurchlauf ausgeführt werden soll.