VBScript ciklusok: Do While, Do Amíg, Amíg, Mindegyikhez (példa)
Miért használnak hurkot a VBScriptben?
A hurkok ugyanazt a kódblokkot újra és újra végrehajtják. Számos VBScript ciklusos utasítás létezik. Néhány VBScript-hurkolt utasítás: Do While, Do Until, For…..Next és így tovább. Tehát hogyan fogja eldönteni, hogy melyik ciklusos utasítást használja az Ön igényeinek kielégítésére?
A ciklusok végrehajtása közben lehet, hogy tudatában vagy annak, hogy hányszor kell végrehajtani egy utasításkészletet. Például két szám összegét tízszer szeretné kiszámolni. Ebben az esetben már tudja, hogy egy kódblokkot 10-szer akar megismételni. Tegyük fel, hogy két szám összegét szeretné kiszámítani, amíg egy adott változó igaz nem lesz. Itt nem tudja, hányszor kell végrehajtani a ciklust. Tehát attól függően, hogy tudja-e vagy sem a végrehajtások számát, különböző típusú ciklusos utasításokat használhat.
A For…Next ciklus utasításokat akkor használjuk, ha egy kódblokkot véges számú alkalommal szeretnénk megismételni, és ha tudjuk, hogy hányszor szeretnénk megismételni a kódblokkot.
A Do While és Do Until ciklusos utasítások akkor használatosak, amikor egy kódblokkot addig szeretne megismételni, amíg egy feltétel igaz vagy hamis lesz, vagyis ha nincs tudatában annak, hogy hányszor szeretné végrehajtani a kódblokkot.
Nézzük meg egyenként ezeket a hurkolt kijelentéseket.
VBScript Do While Loop
Ha nem tudja, hányszor kell végrehajtania egy kódblokkot, akkor Do While ciklusokat fog használni. Például a „Welcome” üzenetet szeretné kiadni, miközben az x változó értéke kisebb, mint 5. Ebben az esetben a Do While ciklus kerül felhasználásra.
<script type="text/vbscript"> Dim x x=1 Do While x<5 document.write("Welcome.") x=x+1 Loop </script>
Ha megpróbálja végrehajtani a kódot, a következő kimenetet kapja:
A blokk négyszer kerül végrehajtásra (ha x=1,2,3 és 4), és a ciklus akkor ér véget, amikor az x értéke 5 lesz. Ha elfelejti az x=x+1 utasítást, akkor a ciklus véget nem érővé válik. egy. Ez a fajta hurkok az úgynevezett végtelen hurkok. A végtelen hurkok akár összeomlhatják a rendszert. Tehát a Do While looping utasítások használata közben ügyeljen arra, hogy van-e olyan kód, amely egy-egy ponton igazzá teszi a hurkolási feltételt.
Ha az x változóhoz az elején 7 értéket rendelünk, akkor a kódblokk még egyszer sem kerül végrehajtásra. Tegyük fel, hogy a feltételtől függetlenül legalább egyszer le akarja hajtani a kódblokkot, akkor használhatja a Do While ciklust. Módosítsa a kódot így:
VBScript példa:
<script type="text/vbscript"> Dim x x=7 Do document.write("Welcome.") x=x+1 Loop While x<5 </script>
Ha végrehajtja ezt a kódot, csak egyszer kapja meg az „Üdvözöljük” üzenetet. Itt a feltétel csak a ciklus egyszeri végrehajtása után kerül ellenőrzésre.
VBScript Do Until Loop
A „Do Until” ciklus akkor is használatos, ha nem tudja, hányszor kell végrehajtania egy kódblokkot. A Do Until ciklus első kódblokkja (Do While x<5) egyenértékű az alábbi kódblokkkal.
<script type="text/vbscript"> Dim x x=1 Do Until x=5 document.write("Welcome.") x=x+1 Loop </script>
Ez ugyanazt a kimenetet adja, mint a Do While ciklus első kódblokkja. Négyszer fogja látni az üdvözlő üzenetet. Hasonló a Do …..Loop While-hoz, nekünk is meg kell tenni… Loop Amíg is.
Ha ki szeretne lépni egy Do While vagy Do Until ciklusból, akkor használhatja az Exit Do utasítást. Tegyük fel, hogy ki akar lépni a blokkból, amikor az x értéke 3 lesz a fenti programban, akkor a következőképpen kell kódolnia:
<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>
Ha végrehajtja a kódot, a kimenet így fog kinézni:
Itt a ciklus akkor lép ki, ha x értéke 3 lesz.
VBScript While Loop
A While…Wend hurok hasonló a Do While hurokhoz, bár nem használják általánosan. Az As Do While strukturáltabb, mint a While…..Wend ciklus, a programozók általában Do While utasításokat használnak.
<script type="text/vbscript"> Dim x x = 1 While x < 5 document.write("Welcome.") x=x+1 Wend </script>
A kimenet az lesz
VBScript For-Next Loop
A For-Next ciklus egy kódblokk meghatározott számú alkalommal történő végrehajtására használható. A „VBScript For ciklus” meghatározza a számlálóváltozót, valamint annak kezdő és végértékeit. A Next utasítás eggyel növeli a számlálóváltozót.
For i = 1 To 5 document.write("The number is " & i & " ") Next
Ha végrehajtja a kódot, akkor a következő kimenetet kapja:
VBScript For-Step-Next Loop
Alapértelmezés szerint a számlálóváltozó eggyel növekszik. Ha növelni vagy csökkenteni szeretné a számlálóváltozót a megadott értékkel, akkor használja a For….Step….Next ciklust. Tegyük fel, hogy a fenti kódban 2-vel szeretné növelni a számlálót, majd módosítsa a kódot a következőképpen:
For i = 1 To 5 Step 2 document.write("The number is " & i & "<br />") Next </script>
Ennek a kódnak a kimenete a következő lesz:
Ha ki szeretne lépni a For Next vagy a For Step Next ciklusból, akkor az Exit parancsot használhatja az utasításhoz. Tegyük fel, hogy ki akar lépni a blokkból, amikor az i értéke 3 lesz a fenti programban, akkor a következőképpen kell kódolnia:
<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>
A kimenet a következő lesz:
VBScript For-Each-Next Loop
Ha meg szeretne ismételni egy kódblokkot egy gyűjtemény minden eleméhez vagy egy VBS tömb minden eleméhez, akkor a For…Each…Next ciklust kell használnia.
<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>
A fent megadott kód kimenete lesz
Kódpélda
<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>
Mentse a fájlt loop.html néven a kívánt helyre. Most nyissa meg a fájlt az Internet Explorerben, és megjelenik egy doboz, amelyben meg kell adnia a nevét. Írjon be egy nevet, mondjuk Áront, így:
Kattintson az OK gombra, és a kimenet így fog kinézni:
Összegzésként
- A hurkolt utasítások ugyanazt a kódblokkot újra és újra végrehajtják.
- Akkor használja a Do-While, Do-Until és While-Wend ciklusokat, ha nem tudja előre, hogy a blokkot hányszor kell végrehajtani.
- Akkor használja a For-Next, For-Next-Step és For-Each-Next ciklusokat, ha már tudja, hányszor kell végrehajtania a kódblokkot.