VBScript-Schleifen: Do While, Do Until, While, For Each (Beispiel)

Warum werden Schleifen in VBScript verwendet?

Schleifen werden verwendet, um denselben Codeblock immer wieder auszuführen. Es gibt eine Reihe von VBScript-Schleifenanweisungen. Einige der VBScript-Schleifenanweisungen sind Do While, Do Until, For…..Next und so weiter. Wie entscheiden Sie also, welche Schleifenanweisung Sie für Ihren Bedarf verwenden?

Beim Ausführen der Schleifen ist Ihnen möglicherweise bewusst, wie oft Sie eine Reihe von Anweisungen ausführen möchten. Sie möchten beispielsweise zehnmal die Summe zweier Zahlen berechnen. In diesem Fall wissen Sie bereits, dass Sie einen Codeblock zehnmal wiederholen möchten. Angenommen, Sie möchten die Summe zweier Zahlen berechnen, bis eine bestimmte Variable wahr wird. Dabei wissen Sie nicht, wie oft die Schleife ausgeführt werden soll. Abhängig davon, ob Sie die Anzahl der Ausführungen kennen oder nicht, können Sie verschiedene Arten von Schleifenanweisungen verwenden.

For…Next-Schleifenanweisungen werden verwendet, wenn Sie einen Codeblock endlich oft wiederholen möchten, d. h. wenn Sie wissen, wie oft Sie den Codeblock wiederholen möchten.

Do While- und Do Until-Schleifenanweisungen werden verwendet, wenn Sie einen Codeblock wiederholen möchten, bis eine Bedingung wahr oder falsch wird, wenn Sie also nicht wissen, wie oft Sie den Codeblock ausführen möchten.

Schauen wir uns diese Schleifenanweisungen einzeln an.

VBScript Do While-Schleife

Wenn Sie nicht wissen, wie oft Sie einen Codeblock ausführen müssen, verwenden Sie Do While-Schleifen. Sie möchten beispielsweise die Nachricht „Willkommen“ ausgeben, während der Wert der Variablen x kleiner als 5 ist. In diesem Fall wird die Do While-Schleife verwendet.

<script type="text/vbscript">
Dim x
x=1
Do While x<5
document.write("Welcome.")
x=x+1
Loop
</script>

Wenn Sie versuchen, den Code auszuführen, erhalten Sie die folgende Ausgabe:

VBScript Do While-Schleife

Der Block wird viermal ausgeführt (wenn x=1,2,3 und 4) und die Schleife endet, wenn der Wert von x 5 wird. Wenn Sie die Anweisung x=x+1 vergessen, wird Ihre Schleife zu einer Endlosschleife eins. Diese Art von Schleifen wird als bezeichnet Endlosschleifen. Endlosschleifen könnten sogar Ihr System zum Absturz bringen. Wenn Sie also Do While-Schleifenanweisungen verwenden, sollten Sie sicherstellen, dass Code vorhanden ist, der die Schleifenbedingung an der einen oder anderen Stelle wahr macht.

Wenn Sie der Variablen x zu Beginn den Wert 7 zuweisen, wird der Codeblock kein einziges Mal ausgeführt. Angenommen, Sie möchten den Codeblock unabhängig von der Bedingung mindestens einmal ausführen, dann können Sie die Do While-Schleife verwenden. Ändern Sie den Code wie folgt:

VBScript-Beispiel:

<script type="text/vbscript">
Dim x
x=7
Do 
document.write("Welcome.")
x=x+1
Loop While x<5
</script>

Wenn Sie diesen Code ausführen, erhalten Sie nur einmal die Meldung „Willkommen“. Hier wird die Bedingung erst nach einmaliger Ausführung der Schleife überprüft.

VBScript Do Until-Schleife

Die „Do Until“-Schleife wird auch verwendet, wenn Sie nicht wissen, wie oft Sie einen Codeblock ausführen müssen. Der erste Codeblock in der Do Until-Schleife (Do While x<5) entspricht dem unten angegebenen Codeblock.

<script type="text/vbscript">
Dim x
x=1
Do Until x=5
document.write("Welcome.")
x=x+1
Loop
</script>

Dadurch erhalten Sie die gleiche Ausgabe wie der erste Codeblock in der Do While-Schleife. Die Willkommensnachricht wird Ihnen viermal angezeigt. Ähnlich wie bei „Do …..Loop While“ müssen wir auch „Do…Loop Until“ ausführen.

Wenn Sie eine Do While- oder Do Until-Schleife dazwischen verlassen möchten, können Sie die Exit Do-Anweisung verwenden. Angenommen, Sie möchten den Block verlassen, wenn der Wert von x im obigen Programm 3 wird, dann müssen Sie wie folgt programmieren:

<script type="text/vbscript">
Dim x
x=1
Do Until x=5
If x=3 Then Exit Do
document.write("Welcome.")
x=x+1
Loop
</script>

Wenn Sie den Code ausführen, sieht Ihre Ausgabe folgendermaßen aus:

VBScript Do Until-Schleife

Hier wird die Schleife verlassen, wenn der Wert von x 3 wird.

VBScript While-Schleife

While...Wend-Schleife ähnelt der Do While-Schleife, wird jedoch nicht häufig verwendet. Da Do While strukturierter ist als die While…..Wend-Schleife, verwenden Programmierer normalerweise Do While-Anweisungen.

<script type="text/vbscript">
Dim x
x = 1   
While x < 5   
document.write("Welcome.")
x=x+1
Wend  
</script>	

Die Ausgabe wird sein

VBScript While-Schleife

VBScript For-Next-Schleife

Die For-Next-Schleife kann verwendet werden, um einen Codeblock für eine bestimmte Anzahl von Malen auszuführen. Die „VBScript For-Schleife“ gibt die Zählervariable und ihre Start- und Endwerte an. Die Next-Anweisung erhöht die Zählervariable um eins.

For i = 1 To 5
  document.write("The number is " & i & "
")
Next

Wenn Sie den Code ausführen, erhalten Sie die Ausgabe wie folgt:

VBScript For-Next-Schleife

VBScript For-Step-Next-Schleife

Standardmäßig wird die Zählervariable um eins erhöht. Wenn Sie die Zählervariable um den von Ihnen angegebenen Wert erhöhen oder verringern möchten, können Sie die For….Step….Next-Schleife verwenden. Angenommen, Sie möchten im obigen Code den Zähler um 2 erhöhen und dann Ihren Code wie folgt ändern:

For i = 1 To 5 Step 2
  document.write("The number is " & i & "<br />")
Next
</script>

Die Ausgabe dieses Codes lautet:

VBScript For-Step-Next-Schleife

Wenn Sie zwischendurch eine For Next- oder For Step Next-Schleife verlassen möchten, können Sie Exit für die Anweisung verwenden. Angenommen, Sie möchten den Block verlassen, wenn der Wert von i im obigen Programm 3 wird, dann müssen Sie wie folgt codieren:

<script type="text/vbscript">
For i = 1 To 5 Step 2
  If i=3 Then Exit For
  document.write("The number is " & i & "<br />")
Next
</script>

Der Ausgang wird:

VBScript For-Step-Next-Schleife

VBScript For-Each-Next-Schleife

Wenn Sie einen Codeblock für jedes Element in einer Sammlung oder für jedes Element eines VBS-Arrays wiederholen möchten, müssen Sie die For…Each…Next-Schleife verwenden.

<script type="text/vbscript">
Dim students(4)
students(0)="John"
students(1)="Hanah"
students(2)="Sarah"
students(3)="Kevin"
students(4)="Emma"

For Each x In students
  document.write(x & "<br />")
Next
</script>

Die Ausgabe des oben angegebenen Codes erfolgt

VBScript For-Each-Next-Schleife

Codebeispiel

<html>
<head>

<script type="text/vbscript">
Dim name, length
name = InputBox("Enter your name")
length = Len(name)’Gives length of the input string

For i = 1 To length
  txt = Mid(name,i,1)'Returns a specified number of characters from a string, the first parameter is the string, second parameter is the starting position and third parameter is the number of characters to return
  If txt="a" or txt="A" or txt="e" or txt="E" or txt="i" or txt="I" or txt="o" or txt="O" or txt="u" or txt="U" Then 
  counter = counter+1
  End If
Next
document.write("Hi " & name & "!!!Your name contains " & counter & " vowels.")
</script>

</head>
<body>

</body>
</html>

Speichern Sie die Datei als loop.html an Ihrem bevorzugten Speicherort. Öffnen Sie nun die Datei im Internet Explorer und Sie erhalten eine box und bittet Sie, Ihren Namen einzugeben. Geben Sie einen Namen ein, sagen Sie Aaron, etwa so:

VBScript For-Each-Next-Schleife

Klicken Sie auf OK und Ihre Ausgabe sieht folgendermaßen aus:

VBScript For-Each-Next-Schleife

Zusammenfassung

  • Schleifenanweisungen werden verwendet, um denselben Codeblock immer wieder auszuführen.
  • Sie verwenden Do-While-, Do-Until- und While-Wend-Schleifen, wenn Sie nicht im Voraus wissen, wie oft der Block ausgeführt werden soll.
  • Sie verwenden die Schleifen For-Next, For-Next-Step und For-Each-Next, wenn Sie bereits wissen, wie oft Sie den Codeblock ausführen müssen.