Archiv
Ansicht:   
Suche   erweiterte Suche

Nachricht aus dem Archiv

Jörg Lorenz schrieb am 30.October.2005, 13:34:11 in der Kategorie web.coding

VBA - Kopfgesteuert mit WHILE

Hallo Natascha,

> Wärst du so nett und könnetst mir erklären, wo der Unterschied
> zwischen kopf- und fußgesteuert mit While oder Until liegt und wofür ich
> diese benutze?

dann versuche ich es mal.

Bei den Do-Schleifen kann man die Abbruchbedingung ja einmal in der ersten Zeile der Schleife festlegen oder in der letzten Zeile (also hinter Loop).

Do While irgendwas wäre dann kofgesteuert, Loop While irgendwas fußgesteuert.

Zu Unterschied mal zwei (sinnlose) Beispiele:

intI = 0
Do Until intI = 0
    MsgBox intI
    intI = intI + 1
Loop



Verwendet man diese Schleife, passiert nix. intI ist 0 und in der ersten Zeile der Schleife wird festgelegt, daß diese laufen soll, bis intI den Wert 0 hat. Da intI aber beim Beginn der Schleife bereits 0 ist, passiert nichts.

Anders bei dem folgenden Beispiel:

i = 0
Do
    MsgBox intI
    intI = intI + 1
Loop Until intI = 0



Auch hier ist intI wieder 0. Da die Abbruchbedingung aber nicht hinter dem Do festgelegt ist, wird die Schleife begonnen. Es folgt die MsgBox, dann wird intI um 1 erhöht (hat also dann den Wert 1(!) und erst dann (Loop Until intI = 0) wird festgelegt, daß die Schleife laufen soll, bis intI 0 ist. Da aber intI nicht 0, sondern 1 ist, geht die Schleife weiter, also Msgbox, um 1 erhöhen, prüfen ob intI 0 ist, usw.

Da intI in diesem Beispiel aber nie wieder 0 werden kann, handelt es sich um eine Endlosschleife.

Die Endscheidung, ob man fuß- oder kopfgesteuerte Do-Schleifen verwendet, muß sich also danach richten, wann geprüft werden soll, ob die Abbruchbedingung erreicht ist.

Der Unterschied zwischen While und Until liegt darin, daß bei While eine Schleife so lange ausgeführt wird, wie eine Bedingung erfüllt ist (z. B. While intI = 10 - so lange, wie intI gleich 10 ist) und bei Until eine Schleife ausgeführt wird, bis eine Bedingung erfüllt ist (Until intI = 10 - so lange, bis intI = 10 ist).

> aber irgendwie hab ich das Gefühl nur noch Bahnhof zu verstehen.

Naja, die Do-Schleifen sind ja auch sehr abstrakt. Mir fielen am Anfang die For-Schleifen leichter. Warum weiß ich aber nicht.

> Bis jetzt hatte ich nie größere Schwierigkeiten mit Wi.
> Für die Beantwortung meiner Frage wäre ich dir seeehr dankbar.

Wenn was ist, frage einfach.

Viele Grüße

Jörg

Archiv
Ansicht:   
Suche   erweiterte Suche
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz