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

Выполняет ту или иную группу операторов в зависимости от значения выражения.Conditionally executes a group of statements, depending on the value of an expression.

СинтаксисSyntax

' 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 инструкции:This article includes several examples that illustrate uses of the If...Then...Else statement:

ЧастиParts

condition
Обязательно.Required. Выражение.Expression. Должны иметь True или False, или тип данных, который неявно преобразуется в Boolean.Must evaluate to True or False, or to a data type that is implicitly convertible to Boolean.

Если выражение является Nullable Boolean переменной, результатом которого является ничего, условие рассматривается как выражение False и Else выполняется блок.If the expression is a Nullable Boolean variable that evaluates to Nothing, the condition is treated as if the expression is False and the Else block is executed.

Then
Требуется однострочный синтаксис; Необязательный параметр, в многострочной синтаксис.Required in the single-line syntax; optional in the multiline syntax.

statements
Необязательный.Optional. Один или несколько следующих инструкций If... Then , которые выполняются, если condition равен True.One or more statements following If...Then that are executed if condition evaluates to True.

elseifcondition
Обязателен, если ElseIf присутствует.Required if ElseIf is present. Выражение.Expression. Должны иметь True или False, или тип данных, который неявно преобразуется в Boolean.Must evaluate to True or False, or to a data type that is implicitly convertible to Boolean.

elseifstatements
Необязательный.Optional. Один или несколько следующих инструкций ElseIf... Then , которые выполняются, если elseifcondition равен True.One or more statements following ElseIf...Then that are executed if elseifcondition evaluates to True.

elsestatements
Необязательный.Optional. Один или несколько инструкций, которые выполняются, если предыдущие condition или elseifcondition выражение, результатом которого является True.One or more statements that are executed if no previous condition or elseifcondition expression evaluates to True.

End If
Завершает многострочном If... Then... Else блок.Terminates the multiline version of If...Then...Else block.

ПримечанияRemarks

Многострочный синтаксисMultiline syntax

Когда If... Then... Else обнаружил инструкции, condition проверяется.When an If...Then...Else statement is encountered, condition is tested. Если conditionTrue, инструкции, следующие за Then выполняются.If condition is True, the statements following Then are executed. Если conditionFalse, каждая ElseIf инструкция (если таковые имеются) вычисляется в порядке.If condition is False, each ElseIf statement (if there are any) is evaluated in order. Когда True elseifcondition находится сразу за соответствующим операторы ElseIf выполняются.When a True elseifcondition is found, the statements immediately following the associated ElseIf are executed. Если не elseifcondition равен True, или при наличии не ElseIf инструкций, инструкции, следующие за Else выполняются.If no elseifcondition evaluates to True, or if there are no ElseIf statements, the statements following Else are executed. После выполнения следующей инструкции Then, ElseIf, или Else, выполнение продолжается с оператору, следующему End If.After executing the statements following Then, ElseIf, or Else, execution continues with the statement following End If.

ElseIf И Else предложения имеют одновременно необязательно.The ElseIf and Else clauses are both optional. Можно использовать столько ElseIf предложений, что и у вас должны быть в If... Then... Else инструкции, но это не ElseIf предложение может следовать за Else предложения.You can have as many ElseIf clauses as you want in an If...Then...Else statement, but no ElseIf clause can appear after an Else clause. If... Then... Else операторы могут быть вложены друг с другом.If...Then...Else statements can be nested within each other.

В синтаксисе многострочных If инструкция должна быть единственной инструкцией в первой строке.In the multiline syntax, the If statement must be the only statement on the first line. ElseIf, Else, И End If инструкций может стоять только метку строки.The ElseIf, Else, and End If statements can be preceded only by a line label. If... Then... Else блок должен завершаться End If инструкции.The If...Then...Else block must end with an End If statement.

Совет

Выберите... Оператор выбора могут быть более полезными при оценке единственное выражение, которое имеет несколько возможных значений.The Select...Case Statement might be more useful when you evaluate a single expression that has several possible values.

Однострочный синтаксисSingle-Line syntax

Однострочный синтаксис для одного условия с кодом можно использовать для выполнения, если он имеет значение true.You can use the single-line syntax for a single condition with code to execute if it's true. Однако многострочный синтаксис предоставляет большую структуру, гибкость и удобнее для чтения, обслуживания и отладки.However, the multiple-line syntax provides more structure and flexibility and is easier to read, maintain, and debug.

Какие следующим Then ключевое слово проверяется, чтобы определить, является ли инструкция однострочный If.What follows the Then keyword is examined to determine whether a statement is a single-line If. Если ничего, кроме комментарий после Then в той же строке, инструкция обрабатывается как однострочный If инструкции.If anything other than a comment appears after Then on the same line, the statement is treated as a single-line If statement. Если Then не существует, он должен быть начала многострочного If... Then... Else.If Then is absent, it must be the start of a multiple-line If...Then...Else.

В синтаксисе однострочный может иметь несколько инструкций, в результате выполнения If... Then принятия решений.In the single-line syntax, you can have multiple statements executed as the result of an If...Then decision. Все операторы должны находиться в той же строке и быть разделены точкой с запятой.All statements must be on the same line and be separated by colons.

Пример синтаксиса многострочныйMultiline syntax example

В следующем примере показано использование многострочный синтаксис If... Then... Else инструкции.The following example illustrates the use of the multiline syntax of the If...Then...Else statement.

Module Multiline
    Public Sub Main()
        '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)
    End Sub
End Module
'This example displays output like the following:
' There are 4 items.

Пример вложенной синтаксисаNested syntax example

В следующем примере показаны вложенные If... Then... Else инструкции.The following example contains nested If...Then...Else statements.

Module Nested
    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
End Module
'This example displays output like the following:
'Time Check is False.

Пример синтаксиса для одной строкиSingle-Line syntax example

Следующий пример иллюстрирует использование синтаксиса одну строку.The following example illustrates the use of the single-line syntax.

Module SingleLine
    Public Sub Main()

        '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
End Module
'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

См. такжеSee also

Choose
Switch
Директивы #If...Then...#Else#If...Then...#Else Directives
Оператор Select...CaseSelect...Case Statement
Вложенные структуры управленияNested Control Structures
Структуры решенийDecision Structures
Логические и побитовые операторы в Visual BasicLogical and Bitwise Operators in Visual Basic
Оператор IfIf Operator