Операторы циклов 

В VBScript поддерживаются несколько типов циклов: цикл For…Next, цикл Do…Loop, цикл While…Wend, цикл For Each…Next. Рассмотрим каждый из них подробнее.

Цикл For…Next

В общем случае оператор цикла For…Next записывается следующим образом:

For counter=start То end [Step step]

 тело цикла

 [Exit For]

 тело цикла

Next

Параметр counter здесь является счетчиком цикла; start — начальное значение этого счетчика; end — конечное значение; step — шаг приращения счетчика. Если ключевое слово Step не указано, то шаг приращения берется равным единице. Выход из цикла For… Next происходит, когда значение счетчика counter становится больше, чем значение параметра end. Выражение Exit For используется для безусловного выхода из цикла.

Пример использования цикла for приведен в листинге П2.1.

Листинг П2.1. Пример использования цикла For…Next

Dim howFar 'Верхний предел для счетчика цикла

Dim sum(10) 'Массив из 11 элементов, индексы от 0 до 10

Dim icount, theSum

howFar = 10

theSum = 0

sum(0) = 0

'Цикл выполнится 11 раз

For icount = 0 To howFar

 theSum=theSum+icount

 sum (icount) = theSum

Next

Цикл For Each…Next

Оператор цикла For Each…Next предназначен для перебора всех элементов массива или коллекции:

For Each element In group

тело цикла

 [Exit For]

 тело цикла

Next [element]

Здесь параметр element является переменной, в которую будет записываться значение текущего элемента массива или коллекции при итерациях; group — имя массива или коллекции объектов.

Замечание

Напомним, что в JScript для перебора всех элементов коллекции необходимо использовать вспомогательный объект Enumerator.

С помощью оператора Exit For можно осуществить немедленный выход из цикла.

Пример использования цикла For Each…Next приведен в листинге П2.2.

Листинг П2.2. Пример использования цикла For Each…Next

'Объявляем переменные

Dim FSO, Folder, Files, File, s

s = 'Список файлов' & vbCrLf

'Создаем объект FileSystemObject

Set FSO = CreateObject('Scripting.FileSystemObject')

' Создаем объект Folder для корневого каталога диска С:

Set Folder = FSO.GetFolder('C:')

'Создаем коллекцию Files всех файлов в корневом каталоге диска С:

Set Files = Folder.Files

'Перебираем все элементы коллекции Files

For Each File In Files

 'Выделяем имя файла для текущего элемента File коллекции

 s = s & File.Name & vbCrLf

Next

'Выводим сформированную строку на экран

WScript.Echo s

Цикл While…Wend

Цикл While…Wend записывается в следующем виде:

While условие

 тело цикла

Wend

Таким образом, в цикле While…Wend условие выполнения тела цикла проверяется перед началом очередной итерации. Если условие равно true, то тело цикла выполняется, в противном случае цикл завершается.

Пример использования цикла While…Wend приведен в листинге П2.3.

Листинг П2.3. Пример использования цикла While…Wend

Dim theMoments, theCount

theMoments = ''

theCount = 42 'Начальное значение счетчика цикла

While (theCount >= 1)

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату