Инструкции условия

Инструкции условий и циклов главное средство управления сценарием. С их помощью можно построить код выбора решения или повторения действий. VBScript располагает следующими инструкциями условий:




Принятие решения по If…Then…Else


Инструкция If…Then…Else используется для принятия решения об истинности или ложности высказывания. В зависимости от результата, на выполнение отправляется та или иная нижеследующая инструкция. Обычно в качестве условия выступает выражение, содержащий оператор сравнения двух значений.


Инструкция If…Then…Else может обладать таким уровнем вложенности, которое понадобиться разработчику.


Выполнение If при истинном условии


При необходимости предусмотреть только один вариант развития событий при истинности условия следует использовать однострочный вариант инструкции If…Then…Else. Синтаксис однострочной инструкции приведён ниже в примере. Обратим внимание, что в этом случае опущено ключевое слово Else.


Sub FixDate()

  Dim myDate

  myDate = #2/13/95#

  If myDate < Now Then myDate = Now

End Sub


Чтобы выполнить несколько строк кода для истинного условия, следует использовать многострочную инструкцию. Обратим внимание, что в этом случае важно указать ключевое слово End If. Пример:


Sub AlertUser(value)

  If value = 0 Then

    AlertLabel.ForeColor = vbRed

    AlertLabel.Font.Bold = True

    AlertLabel.Font.Italic = True

  End If

End Sub


Выполнение инструкции для двух вариантов развития событий


Полная версия инструкции If…Then…Else позволяет разрешить ситуацию, как в случае истинности условия, так и в случае её ложности. Пример:


Sub AlertUser(value)

  If value = 0 Then

    AlertLabel.ForeColor = vbRed

    AlertLabel.Font.Bold = True

    AlertLabel.Font.Italic = True

  Else

    AlertLabel.Forecolor = vbBlack

    AlertLabel.Font.Bold = False

    AlertLabel.Font.Italic = False

  End If

End Sub


Выбор между несколькими альтернативными вариантами


Третий вариант инструкции позволяет организовать выбор между несколькими альтернативными вариантами. Добавление предложения ElseIf расширяет функциональность инструкции, увеличивая вариативность. Пример:


Sub ReportValue(value)

  If value = 0 Then

    MsgBox value

  ElseIf value = 1 Then

    MsgBox value

  ElseIf value = 2 then

    Msgbox value

  Else

    Msgbox "Value out of range!"

  End If

End Sub


Количество используемых предложений ElseIf не ограничено, однако их большое число может сделать код громоздким. Для организации выбора между несколькими альтернативными вариантами лучше всего использовать инструкцию Select Case.



Принятие решения по Select Case


Структура Select Case обеспечивает выбор и выполнение одного блока выражений из нескольких предложенных блоков. Выбор зависит от значения условия. Функциональность структуры схожа с If…Then…ElseIf, однако отличительной особенностью становится лучшая читаемость и производительность кода.


Основание для принятия решения структуры служит выражение, записанное в первой строке; оно вычисляется один раз за выполнение структуры. Затем результат выражения сравнивается с возможными вариантами предложений Case. Если совпадение найдено, то выполняется ассоциированный с ним блок кода. Пример:


Select Case Document.Form1.CardType.Options(SelectedIndex).Text

  Case "MasterCard"

    DisplayMCLogo

    ValidateMCAccount

  Case "Visa"

    DisplayVisaLogo

    ValidateVisaAccount

  Case "American Express"

    DisplayAMEXCOLogo

    ValidateAMEXCOAccount

  Case Else

    DisplayUnknownImage

    PromptAgain

End Select


Обратим внимание, что условие выбора структуры Select Case вычисляется единожды в самом начале её выполнения. Противоположно этому инструкция If…Then…ElseIf для каждого предложения ElseIf может использовать разные выражения условия. Поэтому инструкция может быть заменена структурой только в том случае, если все предложения ElseIf используют одно и то же выражение условия.


Created with the Freeware Edition of HelpNDoc: Full featured multi-format Help generator