VB-Homepage Tipp 281

Schleifen (For/Next/While/Wend/Do/Loop/Until/Exit)

Schleifen sind wohl das A und O in der Programmierung, denn Sie können viele sich wiederholende Vorgänge so auf ein Minimum an Definition beschränken, ein Minimum an Performance verbrauchen und ein Maximum an Geschwindigkeit der Programmausführung erreichen. Aus diesem Grund und um der Vollständigkeit der Tipp-Datenbank, möchte ich dieses Thema etwa näher beleuchten. Denn ich könnte mir vorstellen, daß Sie den einen oder anderen Vertreter der Gattung "Schleife" auch noch nicht kennen.

FOR - NEXT  
For i = 1 To 50

'Anweisungen

Next i
i = 1 ' Startwert
Next i = erhöht den Wert von i um 1 ( i + 1 )

Alle Angaben innerhalb der Schleife werden
bei jedem Durchlauf ausgeführt.
Ist i = 50 wird die Schleife beendet.
For i = 0 To 50 Step 5

'Anweisungen

Next i
i = 0 ' Startwert
Next i = erhöht den Wert von i um 5 ( i + 5 )

Alle Angaben innerhalb der Schleife werden
bei jedem Durchlauf ausgeführt.
Ist i = 50 wird die Schleife beendet.
For i = 50 To 1 Step -1

'Anweisungen

Next i
i = 50 ' Startwert
Next i = verringert den Wert von i um 1 ( i - 1 )

Alle Angaben innerhalb der Schleife werden
bei jedem Durchlauf ausgeführt.
Ist i = 1 wird die Schleife beendet.
For i = 1 To 50

If i = 33 Then Exit For
'Anweisungen

Next i
i = 1 ' Startwert
Next i = erhöht den Wert von i um 1 ( i + 1 )

Alle Angaben innerhalb der Schleife werden
bei jedem Durchlauf ausgeführt.
Ist i = 33 wird die Schleife über Exit For verlassen.
For i = 1 To 50

'Anweisungen A

     For j = 1 To 5

          'Anweisungen B

     Next j

Next i
Verschachtelte For-Next Schleifen
i = 1 'Startwert  / j = 1 'Startwert
Next i = erhöht den Wert von i um 1 ( i + 1 )
Next j = erhöht den Wert von j um 1 ( i + 1 )

Innerhalb der ersten Schleife, wird eine weitere
Schleife durchlaufen, die ihrerseits erst fünfmal
(To 5) durchlaufen wird, bevor die erste Schleife
wieder durchlaufen wird.

Ist i = 50 wird die Schleife beendet
DO - LOOP  
i = 0
Do

'Anweisungen
i = i + 1

If i >= 50 Then Exit Do

Loop
i = 0 'Startwert (Hilfszähler)

Diese Schleife (ohne Exit Do) würde irgendwann
mal einen Speicherüberlauf verursachen, wenn der
interne Speicher voll ist. Sie kann nur über
Exit Do verlassen werden, da die Schleife selbst
kein Ereignis prüft.

Ist i >= 50 wird die Schleife verlassen
i = 0
Do While i < 50

'Anweisungen
i = i + 1

Loop
Durchläuft die Schleife SOLANGE die Vorgabe
zutrifft. Solange i kleiner ist als 50.

Do While Form1.visible = True
Do While Text1.Text = ""

Ist i >= 50 wird die Schleife verlassen.
Ist die Vorgabe schon von vornherein
nicht erfüllt, wird die Schleife kein einziges
mal durchlaufen.
i = 0
Do Until i >= 50

'Anweisungen
i = i + 1

Loop
Durchläuft die Schleife SOLANGE die Vorgabe
NICHT zutrifft. Solange nicht i größer/gleich 50 ist.

Do Until Form1.visible = True
Do Until Text1.Text = ""

Ist i >= 50 wird die Schleife verlassen.
Ist die Vorgabe schon von vornherein
erfüllt, wird die Schleife kein einziges
mal durchlaufen.
i = 0
Do

'Anweisungen
i = i + 1

Loop While i < 50
Durchläuft die Schleife SOLANGE die Vorgabe
zutrifft. Solange i kleiner ist als 50.

Loop While Form1.visible = True
Loop While Text1.Text = ""

Ist i >= 50 wird die Schleife verlassen.
Ist die Vorgabe schon von vornherein nicht
erfüllt, wird die Schleife trotzdem einmal
durchlaufen, da die Prüfung erst danach erfolgt.
i = 0
Do

'Anweisungen
i = i + 1

Loop Until i >= 50
Durchläuft die Schleife SOLANGE die Vorgabe
NICHT zutrifft. Solange nicht i größer/gleich 50 ist.

Loop Until Form1.visible = True
Loop Until Text1.Text = ""

Ist i >= 50 wird die Schleife verlassen.
Ist die Vorgabe schon von vornherein
erfüllt, wird die Schleife trotzdem einmal
durchlaufen, da die Prüfung erst danach erfolgt.
Open "C:\autoexec.bat" For
Input As #1

Do While Not EOF(1)

    Line Input #1, variable

Loop

Close #1
Benutzung Do While zum auslesen einer
Datei.

Dabei wird die Schleife solange
durchlaufen, bis EOF (End of File)
zurückgegeben wird.

WHILE - WEND  
While Form1.Visible

'Anweisungen
DoEvents

Wend
Durchläuft eine Schleife solange die
Vorgabe TRUE (wahr) ist .

Mit While - Wend können nur boolesche Werte
geprüft werden. die Schleife wird solange
durchlaufen, bis FALSE (unwahr) geliefert wird.

DoEvents steht für das zur Verfügung stellen
von Rechnerzeit für andere Anwendungen.

Tipp-Download

Quelle :

Zurück zur Übersichtsseite