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:
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:
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 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-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:
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 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
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:
Klik op OK en uw uitvoer ziet er als volgt uit:
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.