Viele Operationen müssen eine unbestimmte Anzahl wiederholt werden. Nehmen wir einmal an, wir wollen solange Zufallszahlen in eine Liste füllen, bis die erste Zahl duch 100 teilbar ist (MOD-Operator ergibt 0); hier wäre eine For...Next-Schleife unsinning!
In diesem Fall ist die Abbruchbedingung durch eine If-Abfrage realisiert. Viel öfter trifft man aber auf eine Art integriertes Abbruchkriterium:Quote:
Do
ZZahl% = Rnd * 1000
If (ZZahl% Mod 100) = 0 Then Exit Do
lstZahlen.AddItem ZZahl%
Loop
Der Unterschied hier findet sich darin, dass die durch 100 teilbare Zahl noch mit in die Liste aufgenommen wird und erst danach die Schleife beendet wird.Quote:
Do
ZZahl% = Rnd * 1000
lstZahlen.AddItem ZZahl%
Loop Until (ZZahl% Mod 100) = 0
Die Abbruchbedingung kann genauso gut nach dem 'Do' stehen; dann wird sie vor dem Eintreten in die Schleife überprüft und die Schleife eventuell übersprungen.Quote:
Do While (Rnd * 200) < 100
lstZahlen.AddItem "Hallo Welt"
Loop
'While' bedeutet 'solange wie'; 'Until' meint 'bis'.
Vorsicht vor Endlosschleifen! Folgende Konstruktion würde ewig laufen (bis zum Stoppen des VB-Projekts):
Zusammenfassung:Quote:
Do While (1 < 2)
lstZahlen.AddItem "Hallo Welt"
Loop
+ Wenn man eine vorher unbekannte Anzahl von Operationen wiederholen will, verwendet man die Do...Loop-Schleife
+ Durch den Befehl 'Exit Do' kann man eine Do...Loop-Schleife verlassen
+ Durch While oder Until Angaben, kann man ein Abbruchkriterium definieren
Graaz
knollo14






