Kontakt aufnehmen

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 Wort while 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 Wort do 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 mit true 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 mit true 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 mit while 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 Wort for. 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

Im Beispiel wird zunächst eine leere Variable 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 Worte for 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

Im Beispiel wird eine Array-Variable 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

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern