Programmieren

Programmschleifen

While-Schleife

Eine Schleife dient dazu, ein Programm­stück mehrfach zu wiederholen. Das Programm­stück, der Schleifen­körper, wird solange wiederholt, wie eine bestimmte Bedingung, die Schleifen­bedingung, erfüllt ist.

Die While-Schleife hat die allgemeine Form

while (bedingung)
{
      anweisung1;
             drei Punkte übereinander 
      anweisungn;
}

Hier ist bedingung die Schleifen­bedingung. Es muss sich um einen Ausdruck handeln, der einen Wert vom Typ boolean, also true oder false ergibt. Die Schleifen­bedingung steht in runden Klammern hinter dem Wort while (engl.: while – solange).

Danach folgt in geschweiften Klammern der Schleifen­körper, also das Programm­stück, das wiederholt werden soll, hier dargestellt durch die Anweisungen anweisung1, ..., anweisungn. Jede Anweisung wird mit einem Semikolon abge­schlossen.

Bei Ausführung der While-Schleife wird zunächst geprüft, ob die Schleifen­bedingung erfüllt ist, d.h. ob sie den Wert true ergibt. Ist dies der Fall, so werden die Anweisungen des Schleifen­körpers ausgeführt. Wenn der Schleifen­körper fertig ausgeführt ist, springt das Programm wieder an den Anfang der While-Schleife und prüft erneut die Schleifen­bedingung. Ist diese immer noch erfüllt, wird der Schleifen­körper erneut ausgeführt usw. – solange, bis die Schleifen­bedingung irgendwann einmal nicht mehr erfüllt ist. Dann wird der Schleifen­körper nicht mehr ausgeführt, sondern es wird mit den hinter dem Schleifen­körper folgenden Anweisungen fortgefahren.

Beispiel:  Die folgende While-Schleife gibt die Zahlen von 1 bis 10 auf dem Bildschirm aus.

int i = 1;

while (i <= 10)
{
    System.out.println(i);
    i = i + 1;
}

Hier ist die Schleifen­bedingung der Ausdruck i<=10, und der Schleifen­körper besteht aus den zwei Anweisungen System.out.println(i) und i=i+1, jeweils abge­schlossen durch ein Semikolon.

Damit die Schleifen­bedingung ausgewertet werden kann, wird vor Beginn der While-Schleife die Variable i mit einem Wert belegt.

In diesem Beispiel ist die Schleifen­bedingung zu Anfang erfüllt, denn i hat den Wert 1, und es gilt 1 ≤ 10. Somit wird mit System.out.println(i) der Wert von i, also die 1, auf dem Bildschirm ausgegeben, gefolgt von einem Zeilen­vorschub. Mit der Anweisung i=i+1 wird anschließend der Wert von i um 1 erhöht, also auf 2 gesetzt.

Damit ist der Schleifen­körper fertig ausgeführt. Das Programm springt wieder an den Anfang der While-Schleife und prüft erneut die Schleifen­bedingung. Diese ist immer noch erfüllt, denn es ist 2 ≤ 10, also wird der Schleifen­körper erneut ausgeführt usw. – solange bis i den Wert 11 erreicht hat, dann wird der Schleifen­körper nicht mehr ausgeführt.

Der Programm­ablauf einer While-Schleife lässt sich wiederum mit Hilfe eines Fluss­diagramms ver­anschaulichen. Das Fluss­diagramm für das obige Beispiel­programm ist in Bild 1 dargestellt.

 

Bild 1: Flussdiagramm des  Beispielprogramms (While-Schleife) 

Bild 1: Flussdiagramm des Beispielprogramms (While-Schleife)

 

For-Schleife

Häufig dienen Schleifen dazu, Anweisungen eine bestimmte Anzahl von Malen zu wiederholen. Im vorigen Beispiel etwa wird zehnmal etwas ausgegeben. Wie wir gesehen haben, lässt sich dies mit einer While-Schleife realisieren. Ein kompakterer Programmcode ergibt sich jedoch bei Benutzung der For-Schleife:

int i;

for (i=1; i<=10; i=i+1)
{
    System.out.println(i);
}

Bei der For-Schleife werden die Initialisierung der Variablen (i=1), die Schleifen­bedingung (i<=10), sowie die Aktion, die am Ende des Schleifen­körpers stattfinden soll (i=i+1), zusammen­gefasst.

Die For-Schleife hat die allgemeine Form

for (initialisierungbedingungaktion)
{
      anweisung1;
             drei Punkte übereinander 
      anweisungn;
}

Welche Initialisierung vorgenommen wird, wie die Bedingung aussieht, und welche Art von Aktion stattfindet, ist hierbei dem Programmierer überlassen – alle drei Teile können sogar leer sein. Es ist jedoch guter Programmier­stil, die For-Schleife tatsächlich nur so wie in obigem Beispiel zu benutzen, nämlich als Zählschleife. Bei einer Zählschleife erhält eine Laufvariable einen Anfangswert und "läuft" dann bis zu einem Endwert. In Beispiel etwa läuft die Laufvariable i von 1 bis 10.

Für Schleifen, die keine Zähl­schleifen sind, sollte die For-Schleife nicht verwendet werden.

Zum Durchlaufen von Daten­strukturen wie etwa Arrays eignet sich auch die For-Each-Schleife.

 

Weiter mit:   [Entwurf von Programmschleifen]   [Literatur]   oder   [up]

 


H.W. Lang   mail@hwlang.de   Impressum   Datenschutz
Diese Webseiten sind während meiner Lehrtätigkeit an der Hochschule Flensburg entstanden