VBScript-lussen: Do While, Do Until, While, For Each (voorbeeld)

Waarom worden loops gebruikt in VBScript?

Loops worden gebruikt om hetzelfde codeblok keer op keer uit te voeren. Er zijn een aantal VBScript-lusinstructies. Enkele van de VBScript-lusinstructies zijn Do While, Do Until, For…..Next enzovoort. Dus, hoe gaat u beslissen welke looping-instructie u voor uw behoefte wilt gebruiken?

Tijdens het uitvoeren van de lussen bent u zich misschien wel of niet bewust van het aantal keren dat u een reeks instructies wilt uitvoeren. U wilt bijvoorbeeld de som van twee getallen tien keer berekenen. In dit geval weet u al dat u een codeblok tien keer wilt herhalen. Stel dat u de som van twee getallen wilt berekenen totdat een bepaalde variabele waar wordt. In dit geval weet u niet hoe vaak de lus moet worden uitgevoerd. Dus op basis van of u het aantal uitvoeringen wel of niet weet, kunt u verschillende soorten lusinstructies gebruiken.

For…Next looping-instructies worden gebruikt als u een codeblok een eindig aantal keren wilt herhalen, of als u het aantal keren weet als u het codeblok wilt herhalen.

Do While en Do Until looping-instructies worden gebruikt wanneer u een codeblok wilt herhalen totdat een voorwaarde waar of onwaar wordt, dat wil zeggen wanneer u zich niet bewust bent van het aantal keren dat u het codeblok wilt uitvoeren.

Laten we deze looping-instructies een voor een bekijken.

VBScript Do While-lus

Als u niet weet hoe vaak u een codeblok moet uitvoeren, gebruikt u Do While-lussen. U wilt bijvoorbeeld het bericht 'Welkom' weergeven terwijl de waarde van de variabele x kleiner is dan 5. In dat geval wordt de Do While-lus gebruikt.

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

Als u de code probeert uit te voeren, krijgt u de uitvoer als volgt:

VBScript Do While-lus

Het blok wordt vier keer uitgevoerd (wanneer x=1,2,3 en 4) en de lus eindigt wanneer de waarde van x 5 wordt. Als je de instructie x=x+1 vergeet, wordt je lus een oneindige lus. een. Dit soort lussen staat bekend als oneindige lussen. Oneindige lussen kunnen zelfs uw systeem laten crashen. Dus als u Do While-lusinstructies gebruikt, moet u ervoor zorgen dat er code is die de lusvoorwaarde op een bepaald punt waar maakt.

Als u aan het begin de waarde 7 aan de variabele x toekent, wordt het codeblok niet één keer uitgevoerd. Stel dat u het codeblok minstens één keer wilt uitvoeren, ongeacht de voorwaarde, dan kunt u de Do While-lus gebruiken. Verander de code als volgt:

VBScript-voorbeeld:

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

Als u deze code uitvoert, krijgt u slechts één keer de melding “Welkom”. Hier wordt de voorwaarde pas gecontroleerd nadat de lus één keer is uitgevoerd.

VBScript Do Until Loop

De 'Do Until'-lus wordt ook gebruikt als u niet weet hoe lang u een codeblok moet uitvoeren. Het eerste codeblok in de Do Until-lus (Do While x<5) is equivalent aan het onderstaande codeblok.

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

Dit geeft je dezelfde uitvoer als het eerste codeblok in de Do While-lus. U ziet het welkomstbericht vier keer. Vergelijkbaar met Do…..Loop While, we moeten ook Do…Loop Until doen.

Als u een Do While- of Do Until-lus tussendoor wilt afsluiten, kunt u de Exit Do-instructie gebruiken. Stel dat je het blok wilt verlaten als de waarde van x 3 wordt in het bovenstaande programma, dan moet je als volgt coderen:

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

Als u de code uitvoert, ziet uw uitvoer er als volgt uit:

VBScript Do Until Loop

Hier wordt de lus verlaten wanneer de waarde van x 3 wordt.

VBScript While-lus

While…Wend-lus is vergelijkbaar met de Do While-lus, maar wordt niet vaak gebruikt. Omdat Do While meer gestructureerd is dan While…..Wend-lus, gebruiken programmeurs meestal Do While-instructies.

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

De uitvoer zal zijn:

VBScript While-lus

VBScript For-Next-lus

De For-Next-lus kan worden gebruikt om een ​​codeblok een bepaald aantal keren uit te voeren. De “VBScript For-lus” specificeert de countervariabele en de begin- en eindwaarden ervan. Met de instructie Next wordt de countervariabele met één verhoogd.

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

Als u de code uitvoert, krijgt u de uitvoer als volgt:

VBScript For-Next-lus

VBScript For-Step-Next-lus

Standaard wordt de tellervariabele met één verhoogd. Als u de tellervariabele wilt verhogen of verlagen met de waarde die u opgeeft, kunt u For….Step….Next-lus gebruiken. Stel dat u in de bovenstaande code de teller met 2 wilt verhogen en wijzig vervolgens uw code als volgt:

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

De uitvoer van deze code is:

VBScript For-Step-Next-lus

Als u tussendoor een For Next- of For Step Next-lus wilt afsluiten, kunt u Exit voor de instructie gebruiken. Stel dat je het blok wilt verlaten als de waarde van i in het bovenstaande programma 3 wordt, dan moet je als volgt coderen:

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

De output zal worden:

VBScript For-Step-Next-lus

VBScript voor elke volgende lus

Als je een codeblok wilt herhalen voor elk item in een verzameling of voor elk element van een VBS-array, dan moet je For…Each…Next-lus gebruiken.

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

De uitvoer van de hierboven gespecificeerde code zal zijn

VBScript voor elke volgende lus

Code Voorbeeld

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

Sla het bestand op als loop.html op uw gewenste locatie. Open het bestand nu in Internet Explorer en u krijgt een vak waarin u wordt gevraagd uw naam in te voeren. Voer een naam in, bijvoorbeeld Aaron, zoals deze:

VBScript voor elke volgende lus

Klik op OK en uw uitvoer ziet er als volgt uit:

VBScript voor elke volgende lus

Samenvatting

  • Looping-instructies worden gebruikt om hetzelfde codeblok keer op keer uit te voeren.
  • Je gebruikt Do-While, Do-Until en While-Wend loops als je van tevoren niet weet hoe vaak het blok moet worden uitgevoerd.
  • U gebruikt de For-Next-, For-Next-Step- en For-Each-Next-lussen als u al weet hoe vaak u het codeblok moet uitvoeren.

Lees meer readmore