Windows Script Host для Windows 2000/XP - Андрей Попов
Шрифт:
Интервал:
Закладка:
Пример использования цикла for приведен в листинге П2.1.
Листинг П2.1. Пример использования цикла For…NextDim 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…WendDim 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…LoopDim 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 Позволяет обращаться к свойствам объекта без написания имени этого объектаОбработка исключительных ситуаций
Режим обработки исключительных ситуаций в VBScript включается с помощью оператора On Error Resume Next. Если после этого при исполнении какою-либо оператора в сценарии произойдет ошибка времени выполнения, то управление передастся к следующему оператору в тексте.
Для анализа ошибок используется специальный объект Err, который содержит два свойства: Number — числовой код возникшей ошибки и Description — краткое описание этой ошибки.