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