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…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.
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