Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - WHILE ... WEND

Referenz-Navigation

 

Syntax:

WHILE Bedingung
  ' [...Programmcode...]
WEND

Typ: Anweisung
Kategorie: Programmablauf

Die WHILE-Schleife wiederholt einen Anweisungsblock, solange eine Bedingung erfüllt ist. 'Bedingung' ist ein numerischer Ausdruck, der entweder wahr/erfüllt (ungleich null) oder falsch/nicht erfüllt (gleich null) sein kann.

Der Code innerhalb der Schleife wird nur dann ausgeführt, wenn schon vor Beginn der Schleife die Bedingung erfüllt wurde; andernfalls wird der WHILE...WEND-Block übersprungen. Die Schleife arbeitet damit exakt genauso wie

DO WHILE Bedingung
  ' [...Programmcode...]
LOOP

In oben stehendem Code dient WHILE als Schlüsselwort für die BefehlsreferenzeintragDO-Schleifen, um den Typ der Bedingung festzulegen. Bringen Sie die zusammengehörigen Schlüsselworter DO...LOOP bzw. WHILE...WEND nicht durcheinander!

Wie in allen Schleifen können auch die Kontrollanweisungen BefehlsreferenzeintragCONTINUE und BefehlsreferenzeintragEXIT verwendet werden.
CONTINUE WHILE bewirkt, dass der Rest des Schleifen-Codes nicht weiter ausgeführt wird; FreeBASIC springt bei der Ausführung einer solchen Zeile zurück zur WHILE-Anweisung, prüft, ob die Bedingung noch immer erfüllt ist, und führt, wenn dies der Fall ist, die Schleife weiter normal aus.
Mit EXIT WHILE kann die Schleife 'außerplanmäßig' verlassen werden; FreeBASIC fährt dann mit der Codeausführung nach der WEND-Zeile fort.

WHILE...WEND-Blöcke können beliebig oft ineinander und mit anderen Schleifen verschachtelt werden.

Als Block-Anweisung initialisiert WHILE...WEND einen BefehlsreferenzeintragSCOPE-Block, der mit der WEND-Zeile endet. Variablen, die innerhalb einer solchen Schleife deklariert werden, existieren außerhalb nicht mehr.
Achtung: Eine innerhalb der WHILE-Schleife deklarierte Variable kann auch nicht in 'Bedingung' zur Überprüfung des Schleifenendes verwendet werden, da sie an dieser Stelle bereits nicht mehr existiert!

Beispiel:
In diesem Beispiel wird eine WHILE-Schleife eingesetzt, um einen String umzukehren. Benutzt wird dazu die String-Indizierung. Die Schleife stoppt, wenn der Index kleiner als 0 ist, da 0 der Index des ersten Zeichens eines Strings ist.

Dim As String satz, ztas
Dim As Integer index

satz = "The quick brown fox jumps over the lazy dog."
index = Len(satz) - 1

While index >= 0
  ztas &= Chr(satz[index])
  index -= 1
Wend

Print "original:  """ ; satz ; """"
Print "umgedreht: """ ; ztas ; """"
SLEEP

Unterschiede zu QB:
In QB dürfen innerhalb einer Schleife keine Variablen definiert werden.

Unterschiede zu früheren Versionen von FreeBASIC:
Seit FreeBASIC v0.16 wirkt eine WHILE-Schleife wie ein SCOPE-Block.

Unterschiede unter den FB-Dialektformen:
In den Dialektformen Befehlsreferenzeintrag-lang qb und -lang fblite erzeugt WHILE...WEND keinen eigenen Scope-Block, sondern arbeitet wie in QB.

Siehe auch:
BefehlsreferenzeintragDO ... LOOP, BefehlsreferenzeintragFOR ... NEXT, BefehlsreferenzeintragEXIT, BefehlsreferenzeintragCONTINUE, BefehlsreferenzeintragSCOPE, BefehlsreferenzeintragSchleifen, BefehlsreferenzeintragBedingungsstrukturen


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 17.07.2007 von Redakteurytwinky angelegt.
  • Die aktuellste Version wurde am 28.12.2012 von Redakteurnemored gespeichert.
  Versionen Versionen