Freigeben über


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

Führt abhängig vom Wert eines Ausdrucks eine Reihe von Anweisungen aus.

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

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

Bestandteile

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

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

  • statements
    Optional. Eine oder mehrere Anweisungen nach If...Then, die ausgeführt werden, wenn condition True 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
    Optional. Eine oder mehrere Anweisungen nach ElseIf...Then, die ausgeführt werden, wenn elseifcondition True ist.

  • elsestatements
    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 condition True ist, werden die Anweisungen nach Then ausgeführt. Wenn condition False ist, werden alle ElseIf-Anweisungen (sofern vorhanden) nacheinander ausgewertet. Sobald ein Wert für elseifcondition True ergibt, werden die Anweisungen ausgeführt, die unmittelbar auf das zugehörige ElseIf folgen. Wenn keine elseifcondition True 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.

Tipp

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

Aufgaben

Gewusst wie: Ausführen von Anweisungen in Abhängigkeit von einer oder mehreren Bedingungen (Visual Basic)

Referenz

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

Choose

Select...Case-Anweisung (Visual Basic)

Switch

Konzepte

Geschachtelte Steuerungsstrukturen (Visual Basic)

Entscheidungsstrukturen (Visual Basic)

Logische und bitweise Operatoren in Visual Basic

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Dezember 2010

Abschnitt mit Hinweisen neu organisiert.

Informationsergänzung.

Dezember 2010

Beispiel hinzugefügt.

Kundenfeedback.