VBScript-loopar: Gör medan, gör tills, medan, för varje (exempel)
Varför används loopar i VBScript?
Slingor används för att exekvera samma kodblock om och om igen. Det finns ett antal VBScript looping-satser. Några av VBScript looping-satserna är Do While, Do Until, For…..Next och så vidare. Så, hur kommer du att bestämma vilken looping-sats du ska använda för ditt behov?
När du kör looparna kanske du är medveten om hur många gånger du vill utföra en uppsättning instruktioner. Till exempel vill du beräkna summan av två tal tio gånger. I det här fallet vet du redan att du vill upprepa ett kodblock 10 gånger. Anta att du vill beräkna summan av två tal tills en viss variabel blir sann. Här vet du inte hur många gånger loopen ska exekveras. Så baserat på om du vet eller inte vet antalet körningar kan du använda olika typer av looping-satser.
För...Nästa looping-satser används om du vill upprepa ett kodblock ett ändligt antal gånger, att om du vet antalet gånger om du vill upprepa kodblocket.
Do While och Do Until looping-satser används när du vill upprepa ett kodblock tills ett villkor blir sant eller falskt, det vill säga när du inte är medveten om hur många gånger du vill exekvera kodblocket.
Låt oss ta en titt på dessa looping uttalanden en efter en.
VBScript Do While Loop
Om du inte vet hur många gånger du behöver köra ett kodblock kommer du att använda Do While-loopar. Till exempel, du vill mata ut meddelandet "Välkommen" medan värdet på variabeln x är mindre än 5. I sådana fall kommer Do While loop att användas.
<script type="text/vbscript"> Dim x x=1 Do While x<5 document.write("Welcome.") x=x+1 Loop </script>
Om du försöker köra koden får du utdata så här:
Blocket exekveras fyra gånger (när x=1,2,3 och 4) och slingan slutar när värdet på x blir 5. Om du glömmer påståendet x=x+1 kommer din loop att bli en aldrig sinande ett. Denna typ av loopar kallas oändliga slingor. Oändliga loopar kan till och med krascha ditt system. Så när du använder Do While looping-satser, bör du se till att det finns någon kod som kommer att göra looping-villkoret sant vid ett eller annat tillfälle.
Om du tilldelar variabeln x värdet 7 i början, kommer kodblocket inte att exekveras en enda gång. Anta att du vill exekvera kodblocket minst en gång oavsett villkoret, då kan du använda Do While loop. Ändra koden så här:
VBScript-exempel:
<script type="text/vbscript"> Dim x x=7 Do document.write("Welcome.") x=x+1 Loop While x<5 </script>
Om du kör den här koden får du meddelandet "Välkommen" bara en gång. Här kontrolleras villkoret först efter att slingan har utförts en gång.
VBScript gör till loop
'Do Until'-loopen används också när du inte vet hur många gånger du behöver för att exekvera ett kodblock. Det första kodblocket i Do Until-loopen (Do While x<5) är ekvivalent med kodblocket nedan.
<script type="text/vbscript"> Dim x x=1 Do Until x=5 document.write("Welcome.") x=x+1 Loop </script>
Detta ger dig samma utdata som det första kodblocket i Do While-loopen. Du kommer att se välkomstmeddelandet fyra gånger. Liknar Do …..Loop While, vi måste Do…Loop Till också.
Om du vill avsluta en Do While- eller Do Until-slinga däremellan, kan du använda Exit Do-satsen. Anta att du vill lämna blocket när värdet på x blir 3 i programmet ovan, då måste du koda så här:
<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>
Om du kör koden kommer din utdata att se ut så här:
Här avslutas slingan när värdet på x blir 3.
VBScript While Loop
While...Wend loop liknar Do While loop men används inte ofta. As Do While är mer strukturerad än While…..Wend loop, programmerare använder vanligtvis Do While-satser.
<script type="text/vbscript"> Dim x x = 1 While x < 5 document.write("Welcome.") x=x+1 Wend </script>
Resultatet blir
VBScript For-Next Loop
For-Next-slingan kan användas för att exekvera ett kodblock ett visst antal gånger. "VBScript For loop" specificerar räknarvariabeln och dess start- och slutvärden. Next-satsen ökar räknarvariabeln med en.
For i = 1 To 5 document.write("The number is " & i & " ") Next
Om du kör koden får du utdata så här:
VBScript For-Step-Next Loop
Som standard ökas räknarvariabeln med en. Om du vill öka eller minska räknarvariabeln med det värde du anger, kan du använda For….Step….Next loop. Anta att du i ovanstående kod vill öka räknaren med 2, och sedan ändra din kod så här:
For i = 1 To 5 Step 2 document.write("The number is " & i & "<br />") Next </script>
Utgången från denna kod kommer att vara:
Om du vill avsluta en For Next eller For Step Next loop däremellan, kan du använda Exit för uttalandet. Anta att du vill lämna blocket när värdet på i blir 3 i programmet ovan, då måste du koda så här:
<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>
Utgången kommer att vara:
VBScript For-Each-Next Loop
Om du vill upprepa ett kodblock för varje objekt i en samling eller för varje element i en VBS-array, måste du använda For…Each…Next loop.
<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>
Utdata från den ovan angivna koden kommer att vara
Kodsexempel
<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>
Spara filen som loop.html på önskad plats. Öppna nu filen i Internet Explorer och du får en ruta som ber dig att ange ditt namn. Skriv in ett namn, säg Aaron, så här:
Klicka på OK och din utdata kommer att se ut så här:
Sammanfattning
- Looping-satser används för att exekvera samma kodblock om och om igen.
- Du kommer att använda Do-While, Do-Until och While-Wend loopar när du inte i förväg vet hur många gånger blocket ska exekveras.
- Du kommer att använda For-Next, For-Next-Step och For-Each-Next loopar om du redan vet hur många gånger du behöver exekvera kodblocket.