Чтение онлайн

ЖАНРЫ

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

Пример использования цикла

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)

 If (theCount > 1) Then

theMoments = "До взрыва осталось " & theCount & " сек!"

 Else

theMoments = "Осталась секунда!"

 End If

 theCount = theCount - 1 'Уменьшаем значение счетчика

Wend

theMoments = "ВЗРЫВ!"

Цикл Do…Loop

Этот цикл может применяться в двух видах (с предусловием, которое проверяется до начала очередной итерации, и с пост-условием, которое проверяется после окончания итерации):

Do [While | Until] условие

 тело цикла

 [Exit Do]

 тело цикла

Loop

или

Do

 тело цикла

 [Exit Do]

 тело цикла

Loop [While | Until] условие

Если в цикле используется ключевое слово

While
, то итерации продолжаются до тех пор, пока
условие
равно
true
; если же применяется
Until
, то как только значением условия станет
true
, произойдет выход из цикла.

Оператор

Exit Do
позволяет выйти из цикла до завершения его итераций.

Пример использования цикла

Do…Loop
приведен в листинге П2.4.

Листинг П2.4. Пример использования цикла
Do…Loop

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

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

Dim icount, theSum

howFar = 10

theSum = 0

sum(0) = 0

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

Do

 theSum = theSum+icount

 sum(icount) = theSum

 icount=icount+l

Loop While (icount < howFar)

Прочие операторы

Рассмотрим еще несколько часто применяемых операторов (табл. П2.13).

Таблица П2.13. Прочие операторы

Оператор Описание
.
Точка. Применяется для доступа к свойству объекта или для вызова его метода
Скобки. Применяются либо для изменения порядка вычисления выражений, либо для передачи параметров функциям, либо для индексирования массива
&
Оператор конкатенации (склеивание между собой) символьных строк
With…End With
Позволяет обращаться к свойствам объекта без написания имени этого объекта
Поделиться с друзьями: