Цикли VBScript: Do while, Do Until, While, For each (приклад)

Чому у VBScript використовуються цикли?

Цикли використовуються для повторного виконання одного і того ж блоку коду. Існує кілька операторів циклу VBScript. Деякі оператори циклу VBScript: Do While, Do Until, For…..Next і так далі. Отже, як ви вирішуєте, який оператор циклу використовувати для ваших потреб?

Під час виконання циклів ви можете або не можете знати, скільки разів ви хочете виконати набір інструкцій. Наприклад, ви хочете обчислити суму двох чисел десять разів. У цьому випадку ви вже знаєте, що хочете повторити блок коду 10 разів. Припустімо, ви хочете обчислити суму двох чисел, поки певна змінна не стане істинною. Тут ви не знаєте, скільки разів має бути виконано цикл. Отже, залежно від того, чи знаєте ви кількість виконань, ви можете використовувати різні типи операторів циклу.

Інструкції циклу For…Next використовуються, якщо ви хочете повторити блок коду кінцеву кількість разів, якщо ви знаєте кількість разів, якщо ви хочете повторити блок коду.

Оператори циклу Do While і Do Until використовуються, коли ви хочете повторювати блок коду, доки умова не стане істинною або хибною, тобто коли ви не знаєте, скільки разів ви хочете виконати блок коду.

Давайте по черзі розглянемо ці оператори циклу.

VBScript Do While Loop

Якщо ви не знаєте, скільки разів вам потрібно виконати блок коду, ви будете використовувати цикли 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>

Якщо ви спробуєте виконати код, ви отримаєте такий результат:

VBScript Do While Loop

Блок виконується чотири рази (коли x=1,2,3, 4, 5 і 1), а цикл завершується, коли значення x стає XNUMX. Якщо ви забудете оператор x=x+XNUMX, ваш цикл стане нескінченним один. Цей вид петель відомий як нескінченні цикли. Нескінченні цикли можуть навіть призвести до збою вашої системи. Отже, використовуючи оператори циклу Do While, ви повинні переконатися, що існує певний код, який зробить умову циклу істинною в той чи інший момент.

Якщо на початку присвоїти змінній x значення 7, то блок коду не буде виконано жодного разу. Припустімо, що ви хочете виконати блок коду принаймні один раз незалежно від умови, тоді ви можете використовувати цикл 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>

Якщо ви виконаєте код, ваш результат виглядатиме так:

VBScript Do Until Loop

Тут цикл виходить, коли значення x стає 3.

VBScript While Loop

Цикл 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 While Loop

VBScript для наступного циклу

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

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

Якщо ви виконаєте код, ви отримаєте такий результат:

VBScript для наступного циклу

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

Якщо ви хочете вийти з циклу 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 For-Step-Next Loop

Цикл VBScript For-Each-Next

Якщо ви хочете повторити блок коду для кожного елемента колекції або для кожного елемента масиву 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 For-Each-Next

Приклад коду

<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 For-Each-Next

Натисніть OK, і результат виглядатиме так:

Цикл VBScript For-Each-Next

Резюме

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

Підсумуйте цей пост за допомогою: