If (theCount > 1) Then
theMoments = "До взрыва осталось " & theCount & " сек!"
Else
theMoments = "Осталась секунда!"
End If
Другим оператором, позволяющим производить выбор из нескольких вариантов, является Select Case. Синтаксис этого оператора:
Select Case выражение
Case значение_1
выражение
[Case значение_2
выражение_2]
…
[Case Else
выражение_3]
End Select
Здесь сначала вычисляется значение выражения, которое затем по очереди сравнивается со значениями, стоящими после ключевых слов Case. В случае совпадения выполняются операторы в соответствующем блоке Case. Если же ни одно из имеющихся значений не совпадает со значением выражения, то выполняются операторы, стоящие после слова Case Else. Пример использования оператора Select Case:
Select Case MyVar
Case vbRed
Color = "Красный"
Case vbGreen
Color = "Зеленый"
Case vbBlue
Color = "Синий"
Case Else
Color = "Цвет непонятен"
End Select
Операторы циклов
В 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.
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.
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