VBScript-løkker: Gjør mens, gjør til, mens, for hver (eksempel)

Hvorfor brukes looper i VBScript?

Loops brukes til å utføre den samme kodeblokken igjen og igjen. Det finnes en rekke VBScript looping-setninger. Noen av VBScript-looping-setningene er Do While, Do Until, For…..Next og så videre. Så hvordan vil du bestemme hvilken looping-uttalelse du skal bruke for ditt behov?

Mens du utfører løkkene, er du kanskje eller kanskje ikke klar over hvor mange ganger du vil utføre et sett med instruksjoner. For eksempel vil du beregne summen av to tall ti ganger. I dette tilfellet vet du allerede at du vil gjenta en kodeblokk 10 ganger. Anta at du vil beregne summen av to tall til en bestemt variabel blir sann. Her vet du ikke hvor mange ganger loopen skal utføres. Så basert på om du vet eller ikke vet antall henrettelser, kan du bruke forskjellige typer looping-setninger.

For ... Neste looping-setninger brukes hvis du ønsker å gjenta en kodeblokk et begrenset antall ganger, at hvis du vet hvor mange ganger du vil gjenta kodeblokken.

Do While og Do Until looping-setninger brukes når du vil gjenta en kodeblokk til en betingelse blir sann eller usann, det vil si når du ikke er klar over hvor mange ganger du vil utføre kodeblokken.

La oss ta en titt på disse looping-utsagnene én etter én.

VBScript Do While Loop

Hvis du ikke vet hvor mange ganger du trenger å utføre en kodeblokk, vil du bruke Do While-løkker. For eksempel vil du sende ut meldingen "Velkommen" mens verdien til variabelen x er mindre enn 5. I slike tilfeller vil Do While-løkken bli brukt.

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

Hvis du prøver å kjøre koden, får du utdataene slik:

VBScript Do While Loop

Blokken blir utført fire ganger (når x=1,2,3 og 4) og løkken avsluttes når verdien av x blir 5. Hvis du glemmer setningen x=x+1, vil løkken din bli en uendelig en. Denne typen løkker er kjent som uendelige løkker. Uendelige løkker kan til og med krasje systemet ditt. Så mens du bruker Do While looping-setninger, bør du sørge for at det er en eller annen kode som vil gjøre looping-betingelsen sann på et eller annet tidspunkt.

Hvis du tilordner verdien 7 til variabelen x i begynnelsen, vil kodeblokken ikke bli utført en gang. Anta at du vil kjøre kodeblokken minst én gang uavhengig av tilstanden, så kan du bruke Do While-løkken. Endre koden slik:

VBScript eksempel:

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

Hvis du kjører denne koden, vil du få meldingen "Velkommen" bare én gang. Her kontrolleres tilstanden først etter å ha utført loopen én gang.

VBScript Do Until Loop

'Do Until'-løkken brukes også når du ikke vet hvor mange ganger du trenger for å utføre en kodeblokk. Den første kodeblokken i Do Until-løkken (Do While x<5) tilsvarer kodeblokken nedenfor.

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

Dette vil gi deg samme utgang som den første kodeblokken i Do While-løkken. Du vil se velkomstmeldingen fire ganger. Ligner på Do …..Loop While, vi må også gjøre…Loop Until.

Hvis du vil avslutte en Do While- eller Do Until-løkke i mellom, kan du bruke Exit Do-setningen. Anta at du vil gå ut av blokken når verdien av x blir 3 i programmet ovenfor, så må du kode slik:

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

Hvis du kjører koden, vil utdataene dine se slik ut:

VBScript Do Until Loop

Her avsluttes løkken når verdien av x blir 3.

VBScript Mens Loop

While...Wend-løkke ligner på Do While-løkke, men brukes ikke ofte. As Do While er mer strukturert enn While…..Wend loop, programmerere bruker vanligvis Do While-setninger.

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

Utgangen vil være

VBScript Mens Loop

VBScript For-Next Loop

For-Next-løkken kan brukes til å utføre en kodeblokk et bestemt antall ganger. "VBScript For loop" spesifiserer tellervariabelen og dens start- og sluttverdier. Next-setningen øker tellervariabelen med én.

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

Hvis du kjører koden, får du utdataene slik:

VBScript For-Next Loop

VBScript For-Step-Next Loop

Som standard økes tellervariabelen med én. Hvis du vil øke eller redusere tellervariabelen med verdien du spesifiserer, kan du bruke For….Step….Next loop. Anta at du i koden ovenfor vil øke telleren med 2, og deretter endre koden din slik:

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

Utdata fra denne koden vil være:

VBScript For-Step-Next Loop

Hvis du vil avslutte en For Next eller For Step Next-løkke i mellom, kan du bruke Exit for setningen. Anta at du vil gå ut av blokken når verdien av i blir 3 i programmet ovenfor, så må du kode slik:

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

Utgangen vil være:

VBScript For-Step-Next Loop

VBScript For-Each-Next Loop

Hvis du vil gjenta en kodeblokk for hvert element i en samling eller for hvert element i en VBS-matrise, må du bruke 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>

Utgangen av den ovenfor angitte koden vil være

VBScript For-Each-Next Loop

Kodeeksempel

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

Lagre filen som loop.html på ønsket sted. Åpne nå filen i Internet Explorer og du vil få opp en boks som ber deg skrive inn navnet ditt. Skriv inn et navn, si Aaron, slik:

VBScript For-Each-Next Loop

Klikk OK og utdataene dine vil se slik ut:

VBScript For-Each-Next Loop

Sammendrag

  • Looping-setninger brukes til å utføre den samme kodeblokken igjen og igjen.
  • Du vil bruke Do-While, Do-Until og While-Wend-løkker når du ikke på forhånd vet hvor mange ganger blokken skal utføres.
  • Du vil bruke For-Next, For-Next-Step og For-Each-Next-løkker hvis du allerede vet hvor mange ganger du trenger å utføre kodeblokken.