VBScript: Schleifen
Schleifen ermöglichen es, bestimmte Anweisungen mehrmals auszuführen, ohne dass die Anweisungen ständig oft wiederholt notiert werden müssen.While-wend-Schleifen
Die While-wend-Schleife ist die einfachste Schleifenart in VBScript . Sie beginnt mit dem Wortwhile
gefolgt von einer Bedingung, die als Abbruchbedingung für die Schleife dient. Anschließend folgen die Anweisungen, die innerhalb der Schleife wiederholt werden sollen. Die Schleifennotation endet letztlich mit dem Wort wend
. Beispiel:
i = 1 : s = ""
while i < 6
s = s & i & ", "
i = i+1
wend
Do-Loop-Schleifen
Bei dieser Schleife handelt es sich eigentlich um drei Typen von Schleifen. Die Notation ist jedoch prinzipiell gleich: Die Schleife beginnt mit dem Wortdo
und endet mit dem Wort loop
- alles dazwischen ist Schleifenkörper, also Anweisungen die auszuführen sind. Der Unterschied zwischen den Schleifen liegt nun in der Formulierung der Abbruchbedingung.
While-Schleifen
Bei einer While-Schleife wird die Schleife solange ausgeführt, wie die Schleifenbedingung mittrue
ausgewertet werden kann. Die Bedingung wird dabei durch das Wort while
eingeleitet und kann entweder direkt nach do
oder direkt nach loop
stehen. Der Unterschied zwischen den beiden Bedingungspositionen liegt wiederum im Zeitpunkt der Prüfung: Steht die Bedingung nach do
, wird sie vor jedem Schleifendurchlauf geprüft - steht sie nach loop
, wird die Bedingung nach jedem Schleifendurchlauf geprüft. Beispiel:
' Beispiel 1
i = 1 : s = ""
do
s = s & i & ", "
i = i+1
loop while i < 6
' Beispiel 2
i = 1 : s = ""
do while i < 6
s = s & i & ", "
i = i+1
loop
Until-Schleifen
Bei einer Until-Schleife wird die Schleife solange ausgeführt, bis die Schleifenbedingung mittrue
ausgewertet werden kann. Die Bedingung wird dabei durch das Wort until
eingeleitet und kann entweder direkt nach do
oder direkt nach loop
stehen. Der Unterschied zwischen den beiden Bedingungspositionen liegt wie bei While-Schleifen im Zeitpunkt der Prüfung: Steht die Bedingung nach do
, wird sie vor jedem Schleifendurchlauf geprüft - steht sie nach loop
, wird die Bedingung nach jedem Schleifendurchlauf geprüft. Beispiel:
' Beispiel 1
i = 1 : s = ""
do until i > 6
s = s & i & ", "
i = i+1
loop
' Beispiel 2
i = 1 : s = ""
do
s = s & i & ", "
i = i+1
loop until i > 6
Do-Loop-Schleifen abbrechen
Soll eine Do-Loop-Schleife (egal ob mitwhile
oder mit until
) vorzeitig abgebrochen werden, kann dazu die Anweisung exit do
verwendet werden. Gelangt der Interpreter diese Stelle wird die Schleife sofort beendet und mit den Anweisungen nach der Schleife fortgefahren. Beispiel:
i = 1 : s = ""
do until i > 6
s = s & i & ", "
if i = 3 then exit do
i = i+1
loop
For-Next-Schleifen
Die For-Next-Schleife führt den Anweisungsblock in einer zuvor bestimmten Anzahl oft aus. Die Schleife beginnt jeweils mit dem Wortfor
. Diesem folgt die Initialisierung der Zählervariablen - d.h. es wird einer Variablen ein Zählwert zugewiesen - das Wort to
sowie der Zielwert. Anschließend können die Anweisungen folgen, die sich innerhalb der Schleife wiederholen sollen. Letztlich wird die Schleife dann mit dem Wort next
geschlossen. Beispiel:
s = ""
for i = 1 to 5
s = s & i & ", "
next
s
erzeugt. Im Schleifenkopf wird dann die Variable i
mit dem Anfangswert 1 definiert und als Zielwert 5 festgelegt. Das bedeutet, dass VBScript die Schleife solange ausführen wird bis i
gleich 5 ist. Man könnte auch sprechen "Führe den Schleifenkörper solange aus, das begonnen bei 1 die Zahl 5 erreicht wird". Innerhalb der Schleife wird dann jeweils der aktuelle Wert von i
in s
gespeichert. Sind alle Anweisungen des Schleifenkörpers (in diesem Fall nur eine) ausgeführt, erhöht VBScript automatisch die Zählervariable um 1 und prüft ob der Zielwert erreicht ist. Bei uns ist das also beim fünften Durchlauf der Fall.Optional kann auch selbst festgelegt werden, wie VBScript mit der Zählervariable zählen soll. Dazu notiert man nach dem Zielwert das Wort
step
gefolgt von der Zahl, um welche die Zählervariable nach jedem Durchlauf vergrößert bzw. verkleinert werden soll. Beispiel:
s = ""
for i = 5 to 1 step -1
s = s & i & ", "
next
For-Each-Next-Schleifen
Eine For-Each-Next-Schleife durchläuft ein Array (Liste) oder Objekt nach ihren Werten bzw. Eigenschaften. Man notiert dazu die Wortefor each
gefolgt von einer Zuweisungsvariablen, dem Wort in
und dem zu durchlaufenden Array bzw. Objekt. Anschließend werden die auszuführenden Anweisungen notiert. Die Schleife schließt wiederum mit dem Wort next
. Beispiel:
dim a(2)
a(0) = "a" : a(1) = "b" : a(2) = "c"
s = ""
for each b in a
s = s & b & ", "
next
a
definiert, die insgesamt 3 Felder besitzt. Im Schleifenkopf wird nun eine weitere Variable b
angelegt - sie wird die Werte von a
übernehmen. Die Schleife übergibt nun vor jedem Durchlauf den Wert des ersten Feldes von a
an b
und durchläuft einmal den Schleifenkörper. Anschließend wird b
der Wert des nächsten Feldes von a
übergeben und so weiter. Letztlich nimmt b
somit der Reihe nach alle Werte des Arrays an.
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ Abfragen
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project