Оператор If.Then.Else

Оператор If...Then...Else представляет собой простейшую, но и самую распространенную форму проверки условий в Visual Basic. Его сокращенная форма — оператор If...Then — имеет следующий синтаксис:

 

If Выражение1 Оператор Выражение 2 Then

' Выполнить некоторые действия

End If

 

В этом примере Оператор может быть любым из операторов, рассмотренных ранее: AND, OR, =, <>и т. д. Выражение1 и Выражение2 — переменные или константы, допускающие сравнение данным оператором. Например, сравнение строк выполняется следующим образом:

 

PIN = "123456"

 

If PIN = "123456" Then

MsgBox "Верное значение PIN"

End If

 

В этом случае PIN сравнивается с заранее известным значением, "123456". Если условие истинно, на экран выводится сообщение.

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

 

If Выражение1 Оператор Выражение 2 Then

Выполнить некоторые действия

Else

Выполнить другие действия

End If

 

Все, что вам придется сделать, — включить секцию Else после первого выполняемого блока. Затем следующий выполняемый блок размещается между ключевыми словами Else и End If. В нем выполняются действия для условия, противоположного проверяемому. В предыдущем примере это выглядело бы так:

 

PIN = "654321"

 

If PIN = "123456" Then

MsgBox "Верное значение PIN"

Else

MsgBox "Неверное значение PIN!"

End If

 

Итак, теперь вы знаете, как обработать условие и исключение из него. Этот полез-ный прием поможет уменьшить количество ошибок в программе. Если вам потребуется вычислить несколько условий, оператор If...Then...Else можно поместить внутри другого оператора (вложенная проверка). Вложенные операторы If...Then позволяют выполнить серию проверок в определенном порядке. Например:

 

If ValidUserID(UserID) Then

If ValidPassword(UserID, Password) Then

MsgBox "Неверный пароль!"

Else

MsgBox "Пользователь зарегистрирован!"

End If

Else

MsgBox "Неверное имя пользователя!"

End If

 

Сначала мы проверяем, что пользователь ввел правильное имя. Проверка выполняется функцией ValidUserID(). Если функция возвращает True (правильное имя), программа переходит к проверке пароля. В противном случае она извещает пользователя о том, что он ввел неверное имя.

Если функция ValidPassword() возвращает True, пользователю разрешается войти в систему. В противном случае попытка регистрации завершается неудачей. Вложенные операторы If...Then можно создать и другим способом — с помощью конструкции ElseIf:

 

If x = 1 Then

Выполнить некоторые действия

ElseIf x = 2 Then

' Выполнить другие действия

End If

 

Выбор между этими конструкциями — вопрос вкуса и/или привычки. Оба способа работают одинаково хорошо.

 

Функция IIf

Вместо блока If...Then...Else можно воспользоваться конструкцией непосредственного If, или IIf. Единственное отличие заключается в том, что IIf вычисляет оба возвращаемых выражения. Рассмотрим следующий фрагмент:

 

Function TasteIt (Food As String) As String

CheckIt = IIf(Food = "Гамбургер". "Нет, спасибо", "Вкусно!")

End Function

 

Значения второго и третьего параметров, "Нет, спасибо" и "Вкусно!", будут вычислены независимо от того, какое из них будет возвращено функцией IIf.

 

ПОДСКАЗКА

Помните о том, что функция IIf() вычисляет оба выражения перед тем, как возвращать результат. Это не вызывает особых проблем при однократном выполнении команды, однако при вызове IIf в цикле ваша программа будет работать медленнее.

 

Функция TasteIt() чрезвычайно проста. Она проверяет, имеет ли переменная Food значение "Гамбургер", и если имеет — возвращает строку "Нет, спасибо". В противном случае возвращается строка "Вкусно!"

В качестве значений, возвращаемых функцией IIf, могут указываться как константы, так и вычисляемые выражения.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: