Оператор If...Then...Else (Visual Basic)
В зависимости от значения выражения будет выполнена та или иная группа операторов.
' Multiple-line syntax:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
Части
condition
Обязательное.Выражение.Должен принимать значение True или False или должен быть типом данных, который можно преобразовть в Boolean.Если выражение переменной, NullableBoolean, результатом которого является значение Nothing условие обрабатывается, если выражение не является True и блок Else выполнения.
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, выполняются операторы, следующие непосредственно за соответствующим оператором ElseIf.Если отсутствуют elseifcondition, которые имеют значение True или отсутствуют операторы ElseIf, то вызываются операторы, следующие за Else.После выполнения операторов следующих за Then, ElseIf и Else, выполнение продолжается с оператора, следующего за End If.
Предложения ElseIf и Else являются необязательными.Можно поместить любое количество выражений ElseIf внутри оператора If...Then...Else, но ElseIf не может находиться после выражения Else.Операторы If...Then...Else могут быть вложены друг друга.
В многострочном синтаксисе оператор If должен быть единственным оператором в первой строке.Операторам ElseIf, Else и End If может предшествовать только метка строки.Блок If...Then...Else должен заканчиваться оператором End If.
Совет |
---|
Оператор Оператор Select...Case (Visual Basic) может оказаться более полезным при работе с одним выражением, которое может иметь несколько возможных значений. |
Однострочный синтаксис
Можно использовать однострочный синтаксис для коротких, простых проверок.Однако многострочный синтаксис предоставляет большую структурированность, гибкость и обычно ее легче читать, обслуживать и отлаживать, чем однострочную.
Данные, следующие за ключевым словом Then, проверяются, чтобы определить, является ли оператор однострочным If.Если после Then есть какое-то выражение в той же строке, кроме примечаний, то данный оператор является однострочным оператором If.Если отсутствует Then, это должно быть началом многострочного If...Then...Else.
При использовании однострочного синтаксиса возможно выполнение нескольких операторов в результате решения If...Then.Все операторы должны быть в одной строке и разделяться двоеточием.
Пример
В следующем примере показано использование многострочного синтаксиса оператора If...Then...Else.
Dim count As Integer = 0
Dim message As String
If count = 0 Then
message = "There are no items."
ElseIf count = 1 Then
message = "There is 1 item."
Else
message = "There are " & count & " items."
End If
В следующем примере содержатся вложенные операторы If...Then...Else.
Private Function CheckIfTime() As Boolean
' Determine the current day of week and hour of day.
Dim dayW As DayOfWeek = DateTime.Now.DayOfWeek
Dim hour As Integer = DateTime.Now.Hour
' Return True if Wednesday from 2 to 4 P.M.,
' or if Thursday from noon to 1 P.M.
If dayW = DayOfWeek.Wednesday Then
If hour = 14 Or hour = 15 Then
Return True
Else
Return False
End If
ElseIf dayW = DayOfWeek.Thursday Then
If hour = 12 Then
Return True
Else
Return False
End If
Else
Return False
End If
End Function
В следующем примере показано использование однострочного синтаксиса.
If A > 10 Then A = A + 1 : B = B + A : C = C + B
См. также
Ссылки
Оператор Select...Case (Visual Basic)
Основные понятия
Вложенные структуры управления (Visual Basic)