Циклы VBScript: Делать Пока, Делать Пока, Пока, Для каждого (пример)
Почему циклы используются в 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» также используется, когда вы не знаете, сколько времени вам потребуется для выполнения блока кода. Первый блок кода в цикле 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. Предположим, в приведенном выше коде вы хотите увеличить счетчик на 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, и вы увидите окно с просьбой ввести свое имя. Введите имя, скажем, Аарон, например:
Нажмите «ОК», и ваш результат будет выглядеть следующим образом:
Резюме
- Операторы цикла используются для повторного выполнения одного и того же блока кода.
- Вы будете использовать циклы Do-While, Do-Until и While-Wend, когда заранее не знаете, сколько раз блок должен быть выполнен.
- Вы будете использовать циклы For-Next, For-Next-Step и For-Each-Next, если вы уже знаете, сколько раз вам нужно выполнить блок кода.