Bucle VBScript: Do While, Do Until, While, Pentru fiecare (Exemplu)
De ce sunt folosite bucle în VBScript?
Buclele sunt folosite pentru a executa același bloc de cod din nou și din nou. Există o serie de instrucțiuni de buclă VBScript. Unele dintre instrucțiunile de buclă VBScript sunt Do While, Do Until, For…..Next și așa mai departe. Deci, cum veți decide ce declarație de buclă să utilizați pentru nevoia dvs.?
În timp ce executați buclele, este posibil să fiți sau nu conștienți de numărul de ori în care doriți să executați un set de instrucțiuni. De exemplu, doriți să calculați suma a două numere de zece ori. În acest caz, știți deja că doriți să repetați un bloc de cod de 10 ori. Să presupunem că doriți să calculați suma a două numere până când o anumită variabilă devine adevărată. Aici, nu știți de câte ori urmează să fie executată bucla. Deci, în funcție de faptul că cunoașteți sau nu numărul de execuții, puteți utiliza diferite tipuri de instrucțiuni în buclă.
Instrucțiunile For...Next looping sunt folosite dacă doriți să repetați un bloc de cod de un număr finit de ori, asta dacă știți de câte ori, dacă doriți să repetați blocul de cod.
Instrucțiunile Do While și Do Until sunt folosite atunci când doriți să repetați un bloc de cod până când o condiție devine adevărată sau falsă, adică atunci când nu știți de câte ori doriți să executați blocul de cod.
Să aruncăm o privire la aceste declarații în buclă una câte una.
VBScript Do While Buclă
Dacă nu știți de câte ori trebuie să executați un bloc de cod, atunci veți folosi bucle Do While. De exemplu, doriți să afișați mesajul „Bun venit” în timp ce valoarea variabilei x este mai mică de 5. În acest caz, va fi folosită bucla Do While.
<script type="text/vbscript"> Dim x x=1 Do While x<5 document.write("Welcome.") x=x+1 Loop </script>
Dacă încercați să executați codul, veți obține rezultatul astfel:
Blocul este executat de patru ori (când x=1,2,3 și 4) și bucla se termină când valoarea lui x devine 5. Dacă uitați declarația x=x+1, atunci bucla dvs. va deveni nesfârșită. unu. Acest tip de bucle este cunoscut ca bucle infinite. Buclele infinite ar putea chiar să vă blocheze sistemul. Deci, în timp ce utilizați instrucțiunile de buclă Do While, ar trebui să vă asigurați că există un cod care va face condiția de buclă adevărată la un moment sau altul.
Dacă atribuiți valoarea 7 variabilei x la început, atunci blocul de cod nu va fi executat nici măcar o dată. Să presupunem că doriți să executați blocul de cod cel puțin o dată, indiferent de condiție, atunci puteți utiliza bucla Do While. Schimbați codul astfel:
Exemplu VBScript:
<script type="text/vbscript"> Dim x x=7 Do document.write("Welcome.") x=x+1 Loop While x<5 </script>
Dacă executați acest cod, veți primi mesajul „Bine ați venit” o singură dată. Aici condiția este verificată numai după executarea buclei o dată.
VBScript Do Until Loop
Bucla „Do Until” este, de asemenea, utilizată atunci când nu știți de câte ori aveți nevoie pentru a executa un bloc de cod. Primul bloc de cod din bucla Do Until (Do While x<5) este echivalent cu blocul de cod de mai jos.
<script type="text/vbscript"> Dim x x=1 Do Until x=5 document.write("Welcome.") x=x+1 Loop </script>
Acest lucru vă va oferi aceeași ieșire ca și primul bloc de cod din bucla Do While. Veți vedea mesajul de bun venit de patru ori. Similar cu Do…..Loop While, trebuie să facem…Loop Until.
Dacă doriți să părăsiți o buclă Do While sau Do Until între ele, atunci puteți utiliza instrucțiunea Exit Do. Să presupunem că doriți să părăsiți blocul când valoarea lui x devine 3 în programul de mai sus, atunci trebuie să codificați astfel:
<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>
Dacă executați codul, rezultatul dvs. va arăta astfel:
Aici bucla este ieșită când valoarea lui x devine 3.
VBScript While Loop
Bucla While...Wend este similară cu bucla Do While, deși nu este folosită în mod obișnuit. Deoarece Do While este mai structurat decât While…..Wend bucla, programatorii folosesc de obicei instrucțiuni Do While.
<script type="text/vbscript"> Dim x x = 1 While x < 5 document.write("Welcome.") x=x+1 Wend </script>
Ieșirea va fi
VBScript For-Next Loop
Bucla For-Next poate fi folosită pentru a executa un bloc de cod pentru un anumit număr de ori. Bucla „VBScript For” specifică variabila contor și valorile sale de început și de sfârșit. Instrucțiunea Next mărește variabila contor cu una.
For i = 1 To 5 document.write("The number is " & i & " ") Next
Dacă executați codul, veți obține rezultatul astfel:
VBScript For-Step-Next Loop
În mod implicit, variabila contor este incrementată cu unu. Dacă doriți să creșteți sau să micșorați variabila contor cu valoarea specificată, atunci puteți utiliza For….Step….Next loop. Să presupunem că, în codul de mai sus, doriți să creșteți contorul cu 2, apoi să modificați codul astfel:
For i = 1 To 5 Step 2 document.write("The number is " & i & "<br />") Next </script>
Rezultatul acestui cod va fi:
Dacă doriți să părăsiți o buclă For Next sau For Step Next între ele, atunci puteți utiliza Exit pentru instrucțiune. Să presupunem că doriți să părăsiți blocul când valoarea lui i devine 3 în programul de mai sus, atunci trebuie să codificați astfel:
<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>
Ieșirea va fi:
VBScript pentru fiecare buclă următoare
Dacă doriți să repetați un bloc de cod pentru fiecare articol dintr-o colecție sau pentru fiecare element al unui tablou VBS, atunci trebuie să utilizați For...Each...Next bucla.
<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>
Ieșirea codului specificat mai sus va fi
Exemplu de cod
<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>
Salvați fișierul ca loop.html în locația preferată. Acum deschideți fișierul în Internet Explorer și veți primi o casetă care vă cere să vă introduceți numele. Introduceți un nume, spuneți Aaron, astfel:
Faceți clic pe OK și rezultatul dvs. va arăta astfel:
Rezumat
- Instrucțiunile de buclă sunt folosite pentru a executa același bloc de cod din nou și din nou.
- Veți folosi buclele Do-While, Do-Until și While-Wend atunci când nu știți dinainte de câte ori urmează să fie executat blocul.
- Veți folosi buclele For-Next, For-Next-Step și For-Each-Next dacă știți deja de câte ori trebuie să executați blocul de cod.