Учебники

5) зацикливание

Почему циклы используются в VBScript?

Циклы используются для выполнения одного и того же блока кода снова и снова. Существует несколько операторов зацикливания VBScript. Вот некоторые из операторов зацикливания VBScript: «Пока», «До», «Вперед» и т. Д. Итак, как вы решите, какой оператор цикла использовать для ваших нужд?

При выполнении циклов вы можете знать или не знать, сколько раз вы хотите выполнить набор инструкций. Например, вы хотите вычислить сумму двух чисел десять раз. В этом случае вы уже знаете, что хотите повторить блок кода 10 раз. Предположим, вы хотите вычислить сумму двух чисел, пока конкретная переменная не станет истинной. Здесь вы не знаете, сколько раз цикл должен быть выполнен. Таким образом, основываясь на том, знаете ли вы или не знаете количество выполнений, вы можете использовать различные типы операторов зацикливания.

For … Следующие циклические операторы используются, если вы хотите повторить блок кода конечное число раз, а если вы знаете количество раз, если вы хотите повторить блок кода.

Операции «делать пока» и «делать до» используются, когда вы хотите повторить блок кода, пока условие не станет истинным или ложным, то есть когда вы не знаете, сколько раз вы хотите выполнить блок кода.

В этом уроке вы узнаете

Давайте посмотрим на эти циклические операторы по одному.

VBScript сделать пока цикл

Если вы не знаете, сколько раз вам нужно выполнить блок кода, вы будете использовать циклы Do While. Например, вы хотите вывести сообщение «Welcome», в то время как значение переменной x меньше 5. В этом случае будет использоваться цикл Do While.

<script type="text/vbscript">
Dim x
x=1
Do While x<5
document.write("Welcome.")
x=x+1
Loop
</script>	

Если вы попытаетесь выполнить код, вы получите такой вывод:

VBScript Loops - делать пока, делать пока, пока, для каждого

Блок выполняется четыре раза (когда x = 1,2,3 и 4), и цикл заканчивается, когда значение x становится равным 5. Если вы забудете инструкцию x = x + 1, то ваш цикл станет бесконечным один. Этот вид циклов известен как бесконечные циклы . Бесконечные циклы могут даже сломать вашу систему. Таким образом, при использовании циклических операторов Do во время выполнения вы должны убедиться, что существует некоторый код, который сделает условие цикла в той или иной точке истинным.

Если вы присвоите значение 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 делать до цикла

Цикл «До» также используется, когда вы не знаете, сколько времени вам нужно для выполнения блока кода. Первый блок кода в цикле «До» («До тех пор, пока 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 Пока, мы должны сделать … Loop Пока тоже.

Если вы хотите выйти из цикла «делать пока» или «делать до» между ними, вы можете использовать оператор 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>

Если вы выполните код, ваш вывод будет выглядеть так:

VBScript Loops - делать пока, делать пока, пока, для каждого

Здесь цикл завершается, когда значение x становится 3.

VBScript пока цикл

Хотя … Wend цикл похож на цикл Do While, хотя обычно не используется. Так как цикл Do Do более структурирован, чем цикл Wend Wend, программисты обычно используют операторы Do While.

<script type="text/vbscript">
Dim x
x = 1   
While x < 5   
document.write("Welcome.")
x=x+1
Wend  
</script>	

Выход будет

VBScript Loops - делать пока, делать пока, пока, для каждого

VBScript For-Next Loop

Цикл For-Next может использоваться для выполнения блока кода определенное количество раз. Цикл «VBScript For» определяет переменную счетчика и ее начальное и конечное значения. Оператор Next увеличивает переменную счетчика на единицу.

For i = 1 To 5
  document.write("The number is " & i & "
") Next

Если вы выполните код, вы получите такой вывод:

VBScript Loops - делать пока, делать пока, пока, для каждого

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>

Выход этого кода будет:

VBScript Loops - делать пока, делать пока, пока, для каждого

Если вы хотите выйти из цикла 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 Loops - делать пока, делать пока, пока, для каждого

VBScript For-Each-Next Loop

Если вы хотите повторить блок кода для каждого элемента в коллекции или для каждого элемента массива 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>

Выход вышеуказанного кода будет

VBScript Loops - делать пока, делать пока, пока, для каждого

Пример кода

<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, и вы получите окно с просьбой ввести ваше имя. Введите имя, скажем, Аарон, вот так:

VBScript Loops - делать пока, делать пока, пока, для каждого

Нажмите OK, и ваш вывод будет выглядеть так:

VBScript Loops - делать пока, делать пока, пока, для каждого

Резюме

  • Операторы зацикливания используются для повторного выполнения одного и того же блока кода.
  • Вы будете использовать циклы Do-While, Do-To и While-Wend, когда вы не знаете заранее, сколько раз должен выполняться блок.
  • Вы будете использовать циклы For-Next, For-Next-Step и For-Each-Next, если вы уже знаете, сколько раз вам нужно выполнить блок кода.