VBScript-silmukat: Do While, Do Until, While, For Every (esimerkki)

Miksi VBScriptissä käytetään silmukoita?

Silmukoita käytetään suorittamaan sama koodilohko uudestaan ​​ja uudestaan. VBScript-silmukkalauseita on useita. Jotkut VBScript-silmukkalauseista ovat Do While, Do Until, For…..Next ja niin edelleen. Joten miten päätät, mitä silmukkalauseketta käytät tarpeisiisi?

Kun suoritat silmukoita, saatat olla tietoinen siitä, kuinka monta kertaa haluat suorittaa komentosarjan. Haluat esimerkiksi laskea kahden luvun summan kymmenen kertaa. Tässä tapauksessa tiedät jo, että haluat toistaa koodilohkon 10 kertaa. Oletetaan, että haluat laskea kahden luvun summan, kunnes tietystä muuttujasta tulee tosi. Täällä et tiedä kuinka monta kertaa silmukka suoritetaan. Joten sen perusteella, tiedätkö suoritusten lukumäärän vai et, voit käyttää erilaisia ​​silmukkalausekkeita.

For…Next looping -lauseita käytetään, jos haluat toistaa koodilohkon rajallisen määrän kertoja, kun taas jos tiedät kuinka monta kertaa haluat toistaa koodilohkon.

Do While- ja Do Until -silmukkalauseita käytetään, kun haluat toistaa koodilohkon, kunnes ehdosta tulee tosi tai epätosi, eli kun et ole tietoinen siitä, kuinka monta kertaa haluat suorittaa koodilohkon.

Katsotaanpa näitä silmukoita väitteitä yksitellen.

VBScript Do While Loop

Jos et tiedä, kuinka monta kertaa sinun on suoritettava koodilohko, käytät Do While -silmukoita. Esimerkiksi haluat tulostaa viestin "Tervetuloa", kun muuttujan x arvo on pienempi kuin 5. Tällöin käytetään Do While -silmukkaa.

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

Jos yrität suorittaa koodin, saat seuraavanlaisen tulosteen:

VBScript Do While Loop

Lohko suoritetaan neljä kertaa (kun x=1,2,3 ja 4) ja silmukka päättyy, kun x:n arvosta tulee 5. Jos unohdat lauseen x=x+1, silmukastasi tulee loputon yksi. Tämäntyyppiset silmukat tunnetaan nimellä äärettömät silmukat. Äärettömät silmukat voivat jopa kaataa järjestelmän. Joten, kun käytät Do While looping -lauseita, sinun tulee varmistaa, että on olemassa koodi, joka tekee silmukkaehdon totta jossain vaiheessa.

Jos annat muuttujalle x arvon 7 alussa, koodilohkoa ei suoriteta edes kerran. Oletetaan, että haluat suorittaa koodilohkon vähintään kerran ehdosta riippumatta, niin voit käyttää Do While -silmukkaa. Vaihda koodi seuraavasti:

VBScript-esimerkki:

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

Jos suoritat tämän koodin, saat viestin "Tervetuloa" vain kerran. Tässä ehto tarkistetaan vasta silmukan kerran suorittamisen jälkeen.

VBScript Tee silmukkaan asti

'Do Until' -silmukkaa käytetään myös silloin, kun et tiedä, kuinka monta kertaa sinun on suoritettava koodilohko. Ensimmäinen koodilohko Do Until -silmukassa (Do While x<5) vastaa alla annettua koodilohkoa.

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

Tämä antaa sinulle saman tulosteen kuin Do While -silmukan ensimmäinen koodilohko. Näet tervetuloviestin neljä kertaa. Samanlainen kuin Do …..Loop While, meidän on myös tehtävä… Loop Until.

Jos haluat lopettaa Do While- tai Do Until -silmukan välissä, voit käyttää Exit Do -käskyä. Oletetaan, että haluat poistua lohkosta, kun x:n arvo tulee 3:ksi yllä olevassa ohjelmassa, sinun on koodattava seuraavasti:

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

Jos suoritat koodin, tulos näyttää tältä:

VBScript Tee silmukkaan asti

Tässä silmukasta poistutaan, kun x:n arvosta tulee 3.

VBScript While Loop

While…Wend-silmukka on samanlainen kuin Do While -silmukka, vaikka sitä ei käytetä yleisesti. As Do While on jäsennellympi kuin While…..Wend-silmukka, ohjelmoijat käyttävät yleensä Do While -lauseita.

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

Tulos tulee olemaan

VBScript While Loop

VBScript seuraavalle silmukalle

For-Next-silmukkaa voidaan käyttää koodilohkon suorittamiseen tietyn määrän kertoja. "VBScript For loop" määrittää laskurimuuttujan ja sen alku- ja loppuarvot. Next-lause lisää laskurin muuttujaa yhdellä.

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

Jos suoritat koodin, saat seuraavanlaisen tulosteen:

VBScript seuraavalle silmukalle

VBScript For-Step-Next Loop

Oletusarvon mukaan laskurimuuttujaa kasvatetaan yhdellä. Jos haluat suurentaa tai pienentää laskurimuuttujaa määrittämäsi arvon verran, voit käyttää For….Step….Seuraava silmukka. Oletetaan, että yllä olevassa koodissa haluat kasvattaa laskuria kahdella ja muokata sitten koodiasi seuraavasti:

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

Tämän koodin lähtö on:

VBScript For-Step-Next Loop

Jos haluat poistua For Next- tai For Step Next -silmukasta välissä, voit käyttää lauseessa Exit-toimintoa. Oletetaan, että haluat poistua lohkosta, kun i:n arvosta tulee 3 yllä olevassa ohjelmassa, sinun on koodattava seuraavasti:

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

Tuotos on:

VBScript For-Step-Next Loop

VBScript For-Each-Next Loop

Jos haluat toistaa koodilohkon jokaiselle kokoelman alkiolle tai jokaiselle VBS-taulukon elementille, sinun on käytettävä For…Each…Next-silmukkaa.

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

Yllä määritellyn koodin tulos on

VBScript For-Each-Next Loop

Koodiesimerkki

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

Tallenna tiedosto nimellä loop.html haluamaasi paikkaan. Avaa nyt tiedosto Internet Explorerissa ja saat ruudun, jossa sinua pyydetään antamaan nimesi. Kirjoita nimi, sano Aaron näin:

VBScript For-Each-Next Loop

Napsauta OK ja tuloste näyttää tältä:

VBScript For-Each-Next Loop

Yhteenveto

  • Silmukkalauseita käytetään suorittamaan sama koodilohko uudestaan ​​ja uudestaan.
  • Käytät Do-While-, Do-Until- ja While-Wend-silmukoita, kun et tiedä etukäteen, kuinka monta kertaa lohko suoritetaan.
  • Käytät For-Next-, For-Next-Step- ja For-Each-Next-silmukoita, jos tiedät jo kuinka monta kertaa sinun on suoritettava koodilohko.

Lue lisää Readmore