If...Then...Else-Anweisung (Visual Basic)If...Then...Else Statement (Visual Basic)

Führt bedingt eine Gruppe von Anweisungen aus, abhängig vom Wert eines Ausdrucks.Conditionally executes a group of statements, depending on the value of an expression.

SyntaxSyntax

' Multiline syntax:  
If condition [ Then ]  
    [ statements ]  
[ ElseIf elseifcondition [ Then ]  
    [ elseifstatements ] ]  
[ Else  
    [ elsestatements ] ]  
End If  
  
' Single-line syntax:  
If condition Then [ statements ] [ Else [ elsestatements ] ]  

Dieser Artikel enthält mehrere Beispiele, die Verwendungen der veranschaulichen die If... Then... Else Anweisung:This article includes several examples that illustrate uses of the If...Then...Else statement:

TeileParts

condition
Erforderlich.Required. Ausdruck.Expression. Muss ergeben True oder False, oder in einen Datentyp, der implizit in Boolean.Must evaluate to True or False, or to a data type that is implicitly convertible to Boolean.

Wenn der Ausdruck ist ein Nullable Boolean Variable, der ergibt nichts, die Bedingung wird behandelt, als ob der Ausdruck ist False und die Else Block ausgeführt wird.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
In der Syntax für einzeilige erforderlich; in mehrzeiligen Syntax optional.Required in the single-line syntax; optional in the multiline syntax.

statements
Dies ist optional.Optional. Eine oder mehrere Anweisungen nach If... Then , die ausgeführt werden, wenn condition ergibt True.One or more statements following If...Then that are executed if condition evaluates to True.

elseifcondition
Erforderlich, wenn ElseIf vorhanden ist.Required if ElseIf is present. Ausdruck.Expression. Muss ergeben True oder False, oder in einen Datentyp, der implizit in Boolean.Must evaluate to True or False, or to a data type that is implicitly convertible to Boolean.

elseifstatements
Dies ist optional.Optional. Eine oder mehrere Anweisungen nach ElseIf... Then , die ausgeführt werden, wenn elseifcondition ergibt True.One or more statements following ElseIf...Then that are executed if elseifcondition evaluates to True.

elsestatements
Dies ist optional.Optional. Eine oder mehrere Anweisungen, die ausgeführt werden, wenn kein vorheriges condition oder elseifcondition Ausdruck wird zu True.One or more statements that are executed if no previous condition or elseifcondition expression evaluates to True.

End If
Beendet die mehrzeilige Version des If... Then... Else Block.Terminates the multiline version of If...Then...Else block.

HinweiseRemarks

Multiline-syntaxMultiline syntax

Wenn ein If... Then... Else Anweisung festgestellt wird, condition getestet wird.When an If...Then...Else statement is encountered, condition is tested. Wenn condition ist True, die nachfolgenden Anweisungen Then ausgeführt werden.If condition is True, the statements following Then are executed. Wenn condition ist False, die jeweils ElseIf Anweisung (sofern vorhanden) wird in der Reihenfolge ausgewertet.If condition is False, each ElseIf statement (if there are any) is evaluated in order. Wenn eine True elseifcondition gefunden wird, werden die Anweisungen, die direkt nach der zugeordneten ElseIf ausgeführt werden.When a True elseifcondition is found, the statements immediately following the associated ElseIf are executed. Wenn kein elseifcondition ergibt True, oder es sind keine ElseIf -Anweisungen, die nachfolgenden Anweisungen Else ausgeführt werden.If no elseifcondition evaluates to True, or if there are no ElseIf statements, the statements following Else are executed. Nach dem Ausführen der folgenden Anweisungen Then, ElseIf, oder Else, die Ausführung wird fortgeführt, mit der folgenden Anweisung End If.After executing the statements following Then, ElseIf, or Else, execution continues with the statement following End If.

Die ElseIf und Else Klauseln sind optional.The ElseIf and Else clauses are both optional. Sie können beliebig viele ElseIf Klauseln, wie Sie möchten, dass in einer If... Then... Else -Anweisung, jedoch keine ElseIf -Klausel kann angezeigt werden, nachdem ein Else Klausel.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 -Anweisungen können ineinander geschachtelt werden.If...Then...Else statements can be nested within each other.

In der Syntax von mehrzeiligen der If Anweisung muss die einzige Anweisung in der ersten Zeile sein.In the multiline syntax, the If statement must be the only statement on the first line. Die ElseIf, Else, und End If Anweisungen können nur von einer zeilenbezeichnung vorangestellt werden.The ElseIf, Else, and End If statements can be preceded only by a line label. Die If... Then... Else Block mit Enden einer End If Anweisung.The If...Then...Else block must end with an End If statement.

Tipp

Die auswählen... Case-Anweisung kann nützlicher sein, wenn Sie einen einzelnen Ausdruck auswerten, die mehrere mögliche Werte hat.The Select...Case Statement might be more useful when you evaluate a single expression that has several possible values.

Einzeilige-syntaxSingle-Line syntax

Können die einzeilige Syntax für eine einzelne Bedingung mit dem Code ausgeführt werden, wenn dieser Wert true ist.You can use the single-line syntax for a single condition with code to execute if it's true. Allerdings wird die Syntax mehrere Zeilen Struktur und flexibler und ist einfacher zu lesen, verwalten und Debuggen.However, the multiple-line syntax provides more structure and flexibility and is easier to read, maintain, and debug.

Welche folgt die Then Schlüsselwort wird untersucht, um zu bestimmen, ob eine Anweisung eine einzeilige If.What follows the Then keyword is examined to determine whether a statement is a single-line If. Wenn etwas anderes als ein Kommentar, nach dem angezeigt Then in der gleichen Zeile wird die Anweisung als eine einzeilige behandelt If Anweisung.If anything other than a comment appears after Then on the same line, the statement is treated as a single-line If statement. Wenn Then nicht vorhanden ist, muss er den Anfang einer mehrzeiligen If... Then... Else.If Then is absent, it must be the start of a multiple-line If...Then...Else.

In der Syntax einzeilige können mehrere Anweisungen, die als Ergebnis der Ausführung einer If... Then Entscheidung.In the single-line syntax, you can have multiple statements executed as the result of an If...Then decision. Alle Anweisungen müssen in der gleichen Zeile und durch Doppelpunkte getrennt werden.All statements must be on the same line and be separated by colons.

Mehrzeilige SyntaxbeispielMultiline syntax example

Das folgende Beispiel veranschaulicht die Verwendung der mehrzeiligen Syntax für die If... Then... Else Anweisung.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.

Geschachtelte SyntaxbeispielNested syntax example

Das folgende Beispiel enthält geschachtelte If... Then... Else Anweisungen.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.

Einzeilige SyntaxbeispielSingle-Line syntax example

Das folgende Beispiel veranschaulicht die Verwendung der Syntax einzeilige.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

Siehe auchSee also

Choose
Switch
#If...Then...#Else-Anweisungen#If...Then...#Else Directives
Select...Case-AnweisungSelect...Case Statement
Geschachtelte SteuerungsstrukturenNested Control Structures
EntscheidungsstrukturenDecision Structures
Logische und bitweise Operatoren in Visual BasicLogical and Bitwise Operators in Visual Basic
If-OperatorIf Operator