Оператор If...Then...Else (Visual Basic)

Обновлен: Ноябрь 2007

Выполняет блок операторов в зависимости от значения выражения.

If condition [ Then ]
    [ statements ]
[ ElseIf elseifcondition [ Then ]
    [ elseifstatements ] ]
[ Else
    [ elsestatements ] ]
End If
-or-
If condition Then [ statements ] [ Else [ elsestatements ] ]

Компоненты

  • condition
    Обязательный параметр. Выражение. Должен принимать значение True или False или должен быть типом данных, который можно преобразовть в Boolean.

  • Then
    В однострочный форме является обязательным параметром, а в многострочной — необязательным.

  • statements
    Необязательно. Один или несколько операторов следующих за If...Then, которые выполняются, если результатом вычисления condition является True.

  • elseifcondition
    Требуется, если имеется ElseIf. Выражение. Должен принимать значение True или False или должен быть типом данных, который можно преобразовть в Boolean .

  • elseifstatements
    Необязательно. Один или несколько операторов следующих за ElseIf...Then, которые выполняются, если результатом вычисления elseifcondition является True.

  • elsestatements
    Необязательно. Один или несколько операторов, которые выполняются, если нет предшествующего выражения condition или elseifcondition, которое имеет значение True.

  • End If
    Завершает блок If...Then...Else.

Заметки

Можно использовать однострочную форму для коротких, простых проверок. Однако многострочная форма предоставляет большую структурированность, гибкость и обычно ее легче читать, обслуживать и отлаживать, чем однострочную.

Если встречается многострочная структура If...Then...Else, то обрабатывается condition. Если condition имеет значение True, операторы, следующие за Then, выполняются. Если condition имеет значение False, то все операторы ElseIf выполняется по порядку. Если найдено elseifcondition, которое имеет значение True, выполняются операторы, следующие непосредственно за соответствующим оператором Then. Если отсутствуют elseifcondition, которые имеют значение True или отсутствуют операторы ElseIf, то вызываются операторы, следующие за Else. После выполнения операторов следующих за Then, ElseIf и Else, выполнение продолжается с оператора, следующего за End If.

752y8abs.alert_note(ru-ru,VS.90).gifСовет.

Оператор Оператор Select...Case (Visual Basic) может оказаться более полезным при работе с одним выражением, которое может иметь несколько возможных значений.

При использовании однострочной формы, возможно выполнение нескольких операторов в результате обработки If...Then. Все операторы должны быть в одной строке и разделяться двоеточием. Это показано в приведенном ниже примере.

If A > 10 Then A = A + 1 : B = B + A : C = C + B

В многострочной форме оператор If должен быть единственным оператором в первой строке. Операторам ElseIf, Else и End If может предшествовать только метка строки. Многострочный блок If...Then...Else должен заканчиваться оператором End If.

Чтобы определить, вводится ли с помощью оператора If многострочная форма, обратите внимание на код после зарезервированного слова Then. Если после Then есть какое-то выражение в том же операторе, кроме примечаний, то данный оператор является однострочным оператором If. Если отсутствует Then, это должно быть началом многострочного If...Then...Else.

Предложения ElseIf и Else являются необязательными. Допускается столько предложений ElseIf, сколько требуется в многострочном If...Then...Else, но оно не может появляться после предложения Else. Многострочные формы могут быть вложенными.

Пример

В следующем примере показаны однострочная и многострочная формы оператора If...Then...Else.

Dim number, digits As Integer
Dim myString As String
number = 53
If number < 10 Then
    digits = 1
ElseIf number < 100 Then
    digits = 2
Else
    digits = 3
End If
If digits = 1 Then myString = "One" Else myString = "More than one"

В предыдущем примере условие ElseIf имеет значение True и digits присваивается значение 2. Затем последний оператор присваивает myString значение "More than one".

См. также

Ссылки

Директивы #If...Then...#Else

Функция Choose

Оператор Select...Case (Visual Basic)

Функция Switch