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
Referenz
Select...Case-Anweisung (Visual Basic)
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. |