Цикли на VBScript: Do While, Do Until, While, For Every (Пример)
Защо Loops се използват във VBScript?
Циклите се използват за изпълнение на същия блок код отново и отново. Има редица VBScript оператори за цикъл. Някои от инструкциите за цикъл на VBScript са Do While, Do Until, For…..Next и т.н. И така, как ще решите кой оператор за цикъл да използвате за вашите нужди?
Докато изпълнявате циклите, може или може да не сте наясно колко пъти искате да изпълните набор от инструкции. Например искате да изчислите сумата от две числа десет пъти. В този случай вече знаете, че искате да повторите блок от код 10 пъти. Да предположим, че искате да изчислите сумата от две числа, докато определена променлива стане вярна. Тук не знаете колко пъти трябва да се изпълни цикълът. Така че в зависимост от това дали знаете или не броя на изпълненията, можете да използвате различни типове оператори за цикъл.
For…Next операторите за цикъл се използват, ако искате да повторите блок от код краен брой пъти, ако знаете броя пъти, ако искате да повторите блока от код.
Операциите за цикъл Do While и Do Until се използват, когато искате да повторите блок от код, докато дадено условие стане вярно или невярно, т.е. когато не знаете колко пъти искате да изпълните блока от код.
Нека да разгледаме тези зациклящи изрази един по един.
VBScript Прави докато цикъл
Ако не знаете колко пъти трябва да изпълните блок от код, тогава ще използвате Do While цикли. Например, искате да изведете съобщението „Добре дошли“, докато стойността на променливата x е по-малка от 5. В такъв случай ще се използва Do While цикъл.
<script type="text/vbscript"> Dim x x=1 Do While x<5 document.write("Welcome.") x=x+1 Loop </script>
Ако опитате да изпълните кода, ще получите резултата по следния начин:
Блокът се изпълнява четири пъти (когато x=1,2,3 и 4) и цикълът завършва, когато стойността на x стане 5. Ако забравите израза x=x+1, вашият цикъл ще се превърне в безкраен един. Този вид примки е известен като безкрайни цикли. Безкрайните цикли могат дори да сринат системата ви. Така че, докато използвате оператори за цикъл Do While, трябва да се уверите, че има някакъв код, който ще направи условието за цикъл вярно в един или друг момент.
Ако присвоите стойност 7 на променливата x в началото, тогава кодовият блок няма да бъде изпълнен дори веднъж. Да предположим, че искате да изпълните блока код поне веднъж, независимо от условието, тогава можете да използвате Do While цикъл. Променете кода така:
Пример за VBScript:
<script type="text/vbscript"> Dim x x=7 Do document.write("Welcome.") x=x+1 Loop While x<5 </script>
Ако изпълните този код, ще получите съобщението „Добре дошли“ само веднъж. Тук условието се проверява само след еднократно изпълнение на цикъла.
VBScript Do Until Loop
Цикълът „Do Until“ също се използва, когато не знаете колко време трябва да изпълните блок от код. Първият блок от код в Do Until цикъл (Do While x<5) е еквивалентен на дадения по-долу блок от код.
<script type="text/vbscript"> Dim x x=1 Do Until x=5 document.write("Welcome.") x=x+1 Loop </script>
Това ще ви даде същия резултат като първия блок от код в Do While цикъла. Ще видите съобщението за добре дошли четири пъти. Подобно на Do …..Loop While, ние също трябва да Do…Loop Until.
Ако искате да излезете от Do While или Do Until цикъл между тях, тогава можете да използвате оператор Exit Do. Да предположим, че искате да излезете от блока, когато стойността на x стане 3 в горната програма, тогава трябва да кодирате така:
<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>
Ако изпълните кода, изходът ви ще изглежда така:
Тук цикълът излиза, когато стойността на x стане 3.
VBScript Докато цикъл
Цикълът While...Wend е подобен на цикъла Do While, но не се използва често. Тъй като Do While е по-структуриран от цикъла While…..Wend, програмистите обикновено използват изрази Do While.
<script type="text/vbscript"> Dim x x = 1 While x < 5 document.write("Welcome.") x=x+1 Wend </script>
Резултатът ще бъде
VBScript за следващ цикъл
Цикълът For-Next може да се използва за изпълнение на блок от код за определен брой пъти. Цикълът „VBScript For“ указва променливата на брояча и нейните начална и крайна стойност. Операторът Next увеличава променливата на брояча с единица.
For i = 1 To 5 document.write("The number is " & i & " ") Next
Ако изпълните кода, ще получите резултата по следния начин:
VBScript For-Step-Next Loop
По подразбиране променливата на брояча се увеличава с единица. Ако искате да увеличите или намалите променливата на брояча със стойността, която сте посочили, тогава можете да използвате For….Step….Next цикъл. Да предположим, че в горния код искате да увеличите брояча с 2, след което променете кода си по следния начин:
For i = 1 To 5 Step 2 document.write("The number is " & i & "<br />") Next </script>
Резултатът от този код ще бъде:
Ако искате да излезете от цикъл For Next или For Step Next между тях, тогава можете да използвате Exit за оператора. Да предположим, че искате да излезете от блока, когато стойността на i стане 3 в горната програма, тогава трябва да кодирате така:
<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>
Изходът ще бъде:
VBScript за всеки следващ цикъл
Ако искате да повторите блок от код за всеки елемент в колекция или за всеки елемент от VBS масив, тогава трябва да използвате For…Each…Next цикъл.
<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>
Резултатът от горепосочения код ще бъде
Пример за код
<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>
Запазете файла като loop.html на предпочитаното от вас място. Сега отворете файла в Internet Explorer и ще получите поле с молба да въведете вашето име. Въведете име, кажете Аарон, като това:
Щракнете върху OK и изходът ви ще изглежда така:
Oбобщение
- Изявленията за цикъл се използват за изпълнение на един и същ блок код отново и отново.
- Ще използвате Do-While, Do-Until и While-Wend цикли, когато не знаете предварително колко пъти трябва да се изпълни блокът.
- Ще използвате цикли For-Next, For-Next-Step и For-Each-Next, ако вече знаете колко пъти трябва да изпълните блока от код.