Оператор If...Then...Else (Visual Basic)
Выполняет ту или иную группу операторов в зависимости от значения выражения.
Синтаксис
' Multiline syntax:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
Краткие ссылки на пример кода
В этой статье приведено несколько примеров, иллюстрирующих использование If
...Then
...Else
утверждение:
Детали
condition
Обязательный. Выражение. Должен иметь True
значение или False
тип данных, который неявно преобразуется в Boolean
.
Если выражение является переменной nullBoolean
, которая оценивает значение Nothing, условие обрабатывается как если выражение имеетсяFalse
, а ElseIf
блоки оцениваются, если они существуют, или 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
инструкция (если есть) вычисляется в порядке. True
elseifcondition
При обнаружении операторы сразу после связанного ElseIf
действия выполняются. Если операторы True
отсутствуют elseifcondition
или ElseIf
отсутствуют, выполняются следующие Else
инструкции. После выполнения приведенных ниже Then
ElseIf
инструкций или Else
выполнения выполняется следующая End If
инструкция.
Else
Предложения ElseIf
являются необязательными. Вы можете иметь столько ElseIf
предложений, сколько вы хотите в If
...Then
...Else
оператор, но после предложения не ElseIf
может появиться Else
предложение. If
...Then
...Else
операторы могут быть вложены друг в друга.
В многострочный синтаксис If
оператор должен быть единственным оператором первой строки. Else
Операторы ElseIf
и End If
операторы могут предшествовать только метке строки. Then
...If
...Else
Блок должен заканчиваться операторомEnd If
.
Совет
Выбор ... Оператор case может оказаться более полезным при вычислении одного выражения с несколькими возможными значениями.
Синтаксис с одной строкой
Синтаксис одной строки можно использовать для одного условия с кодом для выполнения, если это верно. Однако синтаксис с несколькими строками обеспечивает большую структуру и гибкость и упрощает чтение, обслуживание и отладку.
Что следует ключевому слову Then
, чтобы определить, является ли оператор однострочный If
. Если в той же строке отображается Then
что-либо, отличное от комментария, оператор обрабатывается как однострочный If
оператор. Если Then
нет, оно должно быть началом нескольких строк If
...Then
...Else
.
В синтаксисе с одной строкой можно выполнить несколько операторов в результате If
принятия решения ...Then
. Все операторы должны находиться в одной строке и разделены двоеточиями.
Пример многостроного синтаксиса
В следующем примере показано использование многостроического синтаксиса If
...Then
...Else
утверждение.
'Create a Random object to seed our starting value
Dim randomizer As New Random()
'set our variable
Dim count As Integer = randomizer.Next(0, 5)
Dim message As String
'If count is zero, output will be no items
If count = 0 Then
message = "There are no items."
'If count is 1, output will be "There is 1 item.".
ElseIf count = 1 Then
message = "There is 1 item."
'If count is greater than 1, output will be "There are {count} items.", where {count} is replaced by the value of count.
Else
message = $"There are {count} items."
End If
Console.WriteLine(message)
'This example displays output like the following:
' There are 4 items.
Пример вложенного синтаксиса
В следующем примере содержится вложенный If
...Then
...Else
Заявления.
Public Sub Main()
' Run the function as part of the WriteLine output.
Console.WriteLine("Time Check is " & CheckIfTime() & ".")
End Sub
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 3:59 P.M.,
' or if Thursday from noon to 12:59 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
'This example displays output like the following:
'Time Check is False.
Пример синтаксиса с одной строкой
В следующем примере показано использование однострочного синтаксиса.
Private Sub SingleLine()
'Create a Random object to seed our starting values
Dim randomizer As New Random()
Dim A As Integer = randomizer.Next(10, 20)
Dim B As Integer = randomizer.Next(0, 20)
Dim C As Integer = randomizer.Next(0, 5)
'Let's display the initial values for comparison
Console.WriteLine($"A value before If: {A}")
Console.WriteLine($"B value before If: {B}")
Console.WriteLine($"C value before If: {C}")
' If A > 10, execute the three colon-separated statements in the order
' that they appear
If A > 10 Then A = A + 1 : B = B + A : C = C + B
'If the condition is true, the values will be different
Console.WriteLine($"A value after If: {A}")
Console.WriteLine($"B value after If: {B}")
Console.WriteLine($"C value after If: {C}")
End Sub
'This example displays output like the following:
'A value before If: 11
'B value before If: 6
'C value before If: 3
'A value after If: 12
'B value after If: 18
'C value after If: 21