|
24.02.2010
While Schleife (Solange-Schleife)
Die while | XDEV NLS: Solange Schleife wiederholt einen Anweisungsblock solange die angegebene Bedingung wahr ist. Sobald die Bedingung falsch ist, wird die Schleife abgebrochen und der Anweisungsblock der Schleife wird nicht mehr ausgeführt, sondern komplett übersprungen.
Die Bedingung kann beliebig aufgebaut werden und sich aus festen Werten, Variablen, Konstant und Methoden-Aufrufen zusammensetzen. Es gelten alle mathematischen Gesetzmäßigkeiten, u.a. auch logische Operatoren und Klammern.
1
2
|
while (i<10)
{
// Anweisungsblock
}
|
Die Bedingung wird immer in Klammern angegeben. Diese werden vom Code-Editor automatisch erzeugt.
|
1
2
|
While i < 10
// Anweisungsblock
Wend
|
Die While Schleife wird mit dem Schlüsselwort Wend abgeschlossen. Dieses wird vom Code-Editor automatisch erzeugt.
|
1
2
|
Solange (i < 10 )
// Anweisungsblock
|
Bedingung wird immer in Klammern angegeben. Diese werden vom Code-Editor automatisch erzeugt.
|
» Zähler erhöhen «
Damit es nicht zu einer Endlosschleife kommt, müssen Sie die mit Hilfe der Bedingung abgefragte Variable innerhalb des Anweisungsblocks verändern. Meistens muss dazu eine Zähler-Variable erhöht werden, z.B. i = i + 1, was meistens am Ende des Schleifenblocks passiert.
1
2
3
|
while (i<10)
{
// Anweisungen
i = i + 1;
}
|
Die Zähler-Variable i wird am Ende des Anweisungsblocks um 1 erhöht, da es ansonsten zu einer Endlosschleife käme.
|
1
2
3
|
While i < 10
// Anweisungen
i = i + 1
Wend
|
Die Zähler-Variable i wird am Ende des Anweisungsblocks um 1 erhöht, da es ansonsten zu einer Endlosschleife käme.
|
1
2
3
|
Solange (i < 10 )
// Anweisungen
i = i + 1
|
Die Zähler-Variable i wird am Ende des Anweisungsblocks um 1 erhöht, da es ansonsten zu einer Endlosschleife käme.
|
» Veränderungen registrieren «
Eine while | XDEV NLS: Solange Schleife ist jedoch weitaus mehr als eine Alternative zur Zählerschleife. Häufig wird an Stelle einer Zähler-Variable ein ganz anderer Wert abgefragt, z.B. eine Konstante die beim Durchsuchen einer Datei das Dateiende markiert.
1
2
3
4
5
6
7
|
Int datei = openLocalRead();
String zeile;
while (zeile!=null)
{
zeile = datei.readLine(datei);
}
close(datei);
|
Int datei = openLocalRead();
Definiert eine Variable mit dem Namen datei vom Typ Gannzzahl und weist dieser eine Datei zu, die mit openLocalRead( ); vom Benutzer zugewiesen wird. Dabei wird ein Kanal zur Datei geöffnet.
String zeile;
Definiert eine Variable mit dem Namen Zeile vom Typ Zeichenkette. Darin werden dann die einzeln aus der Datei ausgelesenen Zeilen gespeichert.
while (zeile!=null)
Wiederholt den folgenden Anweisungsblock solange zeile != null, sprich nicht null ist. Wenn beim Auslesen der Datei das Datei-Ende erreicht wird, wird null zurückgegeben.
zeile = datei.readLine(datei);
Weist der Variable zeile den Rückgabewert der Methode datei.readLine(datei) zu. Die Methode liest aus der Datei die nächste Zeile aus und gibt diese zurück.
close(datei);
Schließt den offenen Kanal zur Datei.
|
1
2
3
4
5
6
7
|
Int datei = openLocalRead()
String zeile
While zeile!=null
zeile = datei.readLine(datei)
Wend
close(datei)
|
Int datei = openLocalRead()
Definiert eine Variable mit dem Namen datei vom Typ Gannzzahl und weist dieser eine Datei zu, die mit openLocalRead( ); vom Benutzer zugewiesen wird. Dabei wird ein Kanal zur Datei geöffnet.
String zeile
Definiert eine Variable mit dem Namen Zeile vom Typ Zeichenkette. Darin werden dann die einzeln aus der Datei ausgelesenen Zeilen gespeichert.
while (zeile!=null)
Wiederholt den folgenden Anweisungsblock solange zeile != null, sprich nicht null ist. Wenn beim Auslesen der Datei das Datei-Ende erreicht wird, wird null zurückgegeben.
zeile = datei.readLine(datei)
Weist der Variable zeile den Rückgabewert der Methode datei.readLine(datei) zu. Die Methode liest aus der Datei die nächste Zeile aus und gibt diese zurück.
Wend
Markiert das Ende des While-Blocks.
close(datei)
Schließt den offenen Kanal zur Datei.
|
1
2
3
4
5
6
7
|
Ganzzahl datei = öffneLokalZumLesen ( )
Zeichenkette zeile
Solange (zeile != NULL_WERT)
zeile = leseZeile ( datei )
schließe ( datei )
|
Ganzzahl datei = öffneLokalZumLesen ( )
Definiert eine Variable mit dem Namen datei vom Typ Gannzzahl und weist dieser eine Datei zu, die mit öffneLokalZumLesen( ); vom Benutzer zugewiesen wird. Dabei wird ein Kanal zur Datei geöffnet.
Zeichenkette zeile
Definiert eine Variable mit dem Namen Zeile vom Typ Zeichenkette. Darin werden dann die einzeln aus der Datei ausgelesenen Zeilen gespeichert.
Solange (zeile != NULL_WERT)
Wiederholt den folgenden Anweisungsblock solange zeile != NULL_WERT, sprich nicht null ist. Wenn beim Auslesen der Datei das Datei-Ende erreicht wird, wird die Konstante NULL_WERT zurückgegeben.
zeile = leseZeile ( datei )
Weist der Variable zeile den Rückgabewert der Methode datei.leseZeile( datei ) zu. Die Methode liest aus der Datei die nächste Zeile aus und gibt diese zurück.
schließe ( datei )
Schließt den offenen Kanal zur Datei.
|
Hinweis: Wenn die Bedingung bereits bei der ersten Prüfung falsch ist, wird der Anweisungsblock der while | XDEV NLS: Solange Schleife kein einziges Mal ausgeführt, sondern sofort übersprungen.
|
Basiswissen: Variablen
|