HTMLWorld - HTML, CSS, JavaScript, PHP, Java, Flash und vieles mehrHTMLWorld:   Home | Impressum |
 

 
 

Anzeige 
 
               Forum
 
 
HTMLWorld » VBScript » Schleifen

VBScript: Schleifen

von Jan Winkler

Schleifen ermöglichen es, bestimmte Anweisungen mehrmals auszuführen, ohne dass die Anweisungen ständig oft wiederholt notiert werden müssen.

Anzeige

While-wend-Schleifen  nach oben

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  nach oben

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 Schleifenbedinung 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 Schleifenbedinung 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  nach oben

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  nach oben

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.



« zurück weiter »
Bewerten

 

VBScript

.Autor:Jan Winkler.
. Bewertung:
VBScript: Schleifen HTMLWorld
(5/5 bei 1 Votes)
.
. Community: 92 Beiträge im VBScript Forum .

Navigation


 
     
 

Anzeige