11.2.1
While-Schleife |
||||||||||||||||||||||||||||||||||||
while(..){..} | Die einfachste Art eine Iteration zu realisieren ist die while-Schleife. Zum Schleifenkörper zählen wir alle Anweisungen, die wiederholt ausgeführt werden sollen. In der Normsprache (noch Umgangssprache fast Programmiersprache) hat sie folgende Gestalt: | |||||||||||||||||||||||||||||||||||
Normsprache | In der
Normsprache, sie ist noch Umgangssprache, kommt aber der Syntax einer
Computersprache schon sehr nahe, schaut eine while-Schleife so aus:
Wiederhole solange (Bedingung wahr) Anweisung|Anweisungsblock Vor dem Einstieg in den Schleifenkörper - dort steht, was wiederholt werden soll - wird ein boolescher Ausdruck (=Bedingung) ausgewertet. Ist sein wert true, beginnt der Rechner mit der Abarbeitung der Anweisungen, bzw. des Anweisungsblocks im Schleifenkörpers. Nach dem ersten Durchgang wird vor dem zweiten Einstieg in die Schleife die Bedingung erneuten ausgewertet. Erst wenn die Bedingung den wert false liefert, wird die Schleife beendet. Man erkennt, dass die Bedingung im Schleifenkörper selbst manipuliert werden muss, sonst hätte man, falls die erste Einstiegsbedingung true wäre, eine Endlosschleife konstruiert.
|
|||||||||||||||||||||||||||||||||||
Struktogramm | Wie wir
schon bei den Verzweigungen gesehen haben, helfen Struktogramme ein
Programm oder Teile eines Programms überschaubarer zu machen
|
|||||||||||||||||||||||||||||||||||
Java-Syntax |
while(<Bedingung>){ Anweisung_1; Anweisung_2; .... Anweisung_n; }
|
|||||||||||||||||||||||||||||||||||
Beispiel 1 download: WhileTest.java |
Wir
wollen 20 mal auf den Bildschirm schreiben: "Hallo ich bin es". Statt die
Ausgabe-Anweisung System.out.println("Hallo ich bin es"); zwanzig mal in
den Quelltext zu schreiben, verwenden wir lieber eine while-Schleife:
Prüfen Sie nach, dass tatsächlich die Ausgabe 20 mal aufgerufen wird. Wie müsste man die Initialisierung der Zählervariablen ändern, wenn man in der Schleifenbedingung zaehler<=20 schreiben wollte?
|
|||||||||||||||||||||||||||||||||||
Beispiel 2
Download: |
Ein schon
etwas anspruchvolleres Programm, das eine while-Schleife benutzt, ist das
nächste Beispiel. Es zeigt, wie man die Fakultät einer Zahlberechnen.
Ein sog. Schreibtischtest verdeutlicht, was bei den einzelnen Programmschritten geschieht. Ein Schreibtischtest ist eine Tabelle, in die alle Variablen eingetragen und "Entwicklung" ihrer Werte verfolgt werden. Dabei entspricht eine Zeile der Tabelle, jeweils einem Schleifendurchgang Initialisierungsdaten: faktor=1, fakultaet =1, n = 5 z.B.
|
|||||||||||||||||||||||||||||||||||
Die Methode fakt(...)
Download: |
Wir können unsere Klasse Mathematik um die Methode fakt(int a): long erweitern: public static long fakt(int
a){ Nebenbei lernen wir, dass
Methoden und Variable den gleichen Namen haben können.
fakt(...)
ist eine Methode fakt
eine Variable. Die Variable ist lokal in der Methode
fakt(...)
deklariert, ist deshalb in den anderen Methoden der Klasse
Mathematik
und und schon gar nicht außerhalb bekannt. |
|||||||||||||||||||||||||||||||||||
Beispiel 3
Download:
|
Oft möchte der
Bediener selbst entscheiden, wann er eine Schleife abgebrochen haben
möchte. Das nächste Beispiel stellt eine solche Variante vor.
Anmerkungen zum Programm: |
|||||||||||||||||||||||||||||||||||
zu den Hausaufgaben | ||||||||||||||||||||||||||||||||||||
zur Startseite | www.pohlig.de (C) MPohlig 2003 |