Урок 7 по VBScript: Циклы do…loop и while…wend

Урок 7 по VBScript: Циклы do…loop и while…wend Программирование на VBSCRIPT

В этой статье мы изучим следующие циклы vbs сценариев, а именно: do…loop и while…wend, также рассмотрим применение оператора exit…do.

Данный вид vbs циклов языка vbscript имеет немного другую логику чем, например цикл for, тут мы задаем не диапазон количества итераций, а условие. Например, нам нужно найти сумму чисел, причем количество значений неизвестно, зато, есть условие – сумма всех элементов не должна быть больше 1000. Проверка условия может проверяться как в начале, так и в конце заданного цикла vbs.

Хорошо, давайте проанализируем все vbs циклы по порядку.

Do…Loop — Данный цикл vbs можно использовать в двух вариантах: проверка до начала выполнения итерации (предусловие) и проверка после начала выполнения итерации (пост-условие). Если проверка выполняется в конце, то, как минимум один раз будет выполнена итерация. Давайте рассмотрим общий синтаксис:

Do [While | Until] условие
тело цикла
[Exit Do]
тело цикла
Loop

или

Do
тело цикла
[Exit Do]
тело цикла
Loop [While | Until] условие

В первом случае после ключевого слова Do идет проверка условия, как в условном операторе if, если используется ключевое слово while, то работа vbs цикла будет выполняться до тех пор, пока условие истинно (равно true), если используется слово until – то наоборот, как только условие станет истинным (равно true), произойдёт выход из цикла. Оператор Exit Do позволяет выйти из vbs цикла.

Второй вариант синтаксиса аналогичен первому лишь с той разницей, что проверка условия осуществляется в конце.

Скачать архив с примерами

Хорошо, теперь давайте рассмотрим следующие 4 примера:

Первый пример

' *****************************************************************************
' Do...Loop while
' Создаём массив из 10 элементов
' do_loop.vbs
' *****************************************************************************
Option Explicit
' массив MyArr из 10 элементов
Dim MyArr(9)
' i - индекс массива, index - будет хранить значение
Dim i, index 
i = 0   
Do     
     MyArr(i) = i  
     index=index & MyArr(i) & vbCrLf
     i=i+1
' выполнять пока i меньше 10
Loop While (i < 10) ' i<=9
 
MsgBox "Значения элементов:" & vbCrLf & index & vbCrLf &_
                              "Значение переменной i:" & i
VBScript: do while wend loop и do loop while wend

Второй пример

' *****************************************************************************
' Do...Loop until
' Создаём массив из 10 элементов
' do_loop_1.vbs
' *****************************************************************************
Option Explicit
' массив MyArr из 10 элементов
Dim MyArr(9)
' i - индекс массива, index - будет хранить значение
Dim i, index 
 
i = 0   
 
Do     
     MyArr(i) = i  
     index=index & MyArr(i) & vbCrLf
     i=i+1
' завершить, когда i станет большее 9
Loop until (i >= 10) ' i>9
 
MsgBox "Значения элементов:" & vbCrLf & index & vbCrLf &_
                              "Значение переменной i:" & i

Третий пример

' *****************************************************************************
' Do while...Loop
' Создаём массив из 10 элементов
' do_loop_2.vbs
' *****************************************************************************
Option Explicit
' массив MyArr из 10 элементов
Dim MyArr(19)
' i - индекс массива, index - будет хранить значение
Dim i, index 
 
i = 0   
' выполнять пока i меньше 10
Do While (i < 10) ' i<=9
     MyArr(i) = i  
     index=index & MyArr(i) & vbCrLf
     i=i+1
Loop
 
MsgBox "Значения элементов:" & vbCrLf & index & vbCrLf &_
                              "Значение переменной i:" & i

Четвёртый пример

' *****************************************************************************
' Do until...Loop
' Создаём массив из 10 элементов
' do_loop_3.vbs
' *****************************************************************************
Option Explicit
' массив MyArr из 10 элементов
Dim MyArr(9)
' i - индекс массива, index - будет хранить значение
Dim i, index 
 
i = 0   
' завершить, когда i станет больше 9
Do Until (i >=10) ' i>9
     MyArr(i) = i  
     index=index & MyArr(i) & vbCrLf
     i=i+1
Loop
 
MsgBox "Значения элементов:" & vbCrLf & index & vbCrLf &_
                              "Значение переменной i:" & i

Все четыре примера сценария vbscript заполняют массив MyArr числами от 0 до 9 используя vbs циклы Do…Loop в том или ином варианте.

Простой vbs цикл while wend

while…wend — Конструкция while…wend является одной из vbs циклов, которая по своей природе очень проста:

While условие
тело цикла
Wend

Тут всё просто, если условие истинно – равно true, работа продолжается, иначе, происходит завершение работы.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий