Freigeben über


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

Führt bedingt eine Gruppe von Anweisungen aus, abhängig vom Wert eines Ausdrucks.

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

' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]

Teile

  • condition
    Erforderlich.Ausdruck.Muss True oder False sein oder einen Datentyp ergeben, der implizit in Boolean konvertiert werden kann.

    Wenn der Ausdruck eine Variable Auf NULL festgelegt werdenBoolean ist, die an Nichts ergibt, wird die Bedingung behandelt, als ob der Ausdruck nicht True ist, und der Else-Block wird ausgeführt.

  • Then
    Bei einzeiliger Syntax erforderlich, bei mehrzeiliger Syntax optional.

  • statements
    Dies ist optional.Eine oder mehrere Anweisungen nach If...Then, die ausgeführt werden, wenn conditionTrue ist.

  • elseifcondition
    Erforderlich, wenn ElseIf vorhanden ist.Ausdruck.Muss True oder False sein oder einen Datentyp ergeben, der implizit in Boolean konvertiert werden kann.

  • elseifstatements
    Dies ist optional.Eine oder mehrere Anweisungen nach ElseIf...Then, die ausgeführt werden, wenn elseifconditionTrue ist.

  • elsestatements
    Dies ist optional.Eine oder mehrere Anweisungen, die ausgeführt werden, wenn kein vorheriger condition-Ausdruck oder elseifcondition-Ausdruck True ist.

  • End If
    Beendet den If...Then...Else-Block.

Hinweise

Mehrzeilige Syntax

Wenn eine If...Then...Else-Anweisung auftritt, wird condition getestet.Wenn conditionTrue ist, werden die Anweisungen nach Then ausgeführt.Wenn conditionFalse ist, werden alle ElseIf-Anweisungen (sofern vorhanden) nacheinander ausgewertet.Sobald ein Wert für elseifconditionTrue ergibt, werden die Anweisungen ausgeführt, die unmittelbar auf das zugehörige ElseIf folgen.Wenn keine elseifconditionTrue ist oder wenn keine ElseIf-Anweisungen vorhanden sind, werden die Anweisungen nach Else ausgeführt.Nach der Ausführung der Anweisungen nach Then, ElseIf oder Else wird die Anweisung nach End If ausgeführt.

Die ElseIf-Klausel und die Else-Klausel sind optional.Sie können so viele ElseIf-Klauseln, wie Sie möchten, in einer If...Then...Else-Anweisung haben, aber keine ElseIf-Klausel darf nach einer Else-Klausel erscheinen.If...Then...Else-Anweisungen können ineinander geschachtelt werden.

Bei mehrzeiliger Syntax muss die If-Anweisung die einzige Anweisung in der ersten Zeile sein.Von den Anweisungen ElseIf, Elseund End If kann nur eine Zeilenmarke stehen.Der If...Then...Else-Block muss mit einer End If-Anweisung enden.

TippTipp

Die Select...Case-Anweisung (Visual Basic) kann besonders in Situationen sinnvoll sein, in denen ein einzelner Ausdruck mit verschiedenen möglichen Werten ausgewertet wird.

Einzeilige Syntax

Die einzeilige Syntax bietet sich bei einfachen, kurzen Tests an.Die mehrzeilige Syntax ist dagegen strukturierter und flexibler und kann in der Regel leichter gelesen, gepflegt und debuggt werden.

Was auf das Then-Schlüsselwort folgt, wird überprüft, um festzustellen, ob eine Anweisung ein einzeiliges If ist.Wenn in derselben Zeile auf Then etwas anderes als ein Kommentar folgt, wird die Anweisung als einzeilige If-Anweisung behandelt.Wenn Then nicht vorhanden ist, muss es sich um den Anfang einer mehrzeiligen If...Then...Else-Anweisung handeln.

In der einzeiligen Syntax können mehrere Anweisungen als Ergebnis einer If...Then-Entscheidung ausgeführt werden.Alle Anweisungen müssen sich in derselben Zeile befinden und durch Doppelpunkt getrennt werden.

Beispiel

Das folgende Beispiel veranschaulicht die Verwendung der mehrzeiligen Syntax der If...Then...Else-Anweisung.

        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

Das folgende Beispiel enthält geschachtelte If...Then...Else-Anweisungen.

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

Das folgende Beispiel veranschaulicht die Verwendung der einzeiligen Syntax.

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

Siehe auch

Referenz

#If...Then...#Else-Direktive

Choose

Select...Case-Anweisung (Visual Basic)

Switch

If-Operator (Visual Basic)

Konzepte

Geschachtelte Steuerungsstrukturen (Visual Basic)

Entscheidungsstrukturen (Visual Basic)

Logische und bitweise Operatoren in Visual Basic