Do...Loop-Schleifen:
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!
'While' bedeutet 'solange wie'; 'Until' meint 'bis'.
Vorsicht vor Endlosschleifen! Folgende Konstruktion würde ewig laufen (bis zum Stoppen des VB-Projekts):
+ 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
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