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:

VBScript Do While Buclă

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:

VBScript Do Until Loop

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

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

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:

VBScript For-Step-Next Loop

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 For-Step-Next Loop

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

VBScript pentru fiecare buclă următoare

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:

VBScript pentru fiecare buclă următoare

Faceți clic pe OK și rezultatul dvs. va arăta astfel:

VBScript pentru fiecare buclă următoare

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.