If...Then...Else-Anweisung (Visual Basic)
Führt bedingt eine Gruppe von Anweisungen aus, abhängig vom Wert eines Ausdrucks.
Syntax
' Multiline syntax:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
Schnelllinks zu Beispielcode
Dieser Artikel enthält mehrere Beispiele, die die Verwendung der If
...Then
...Else
Anweisung:
- Beispiel für eine mehrstufige Syntax
- Beispiel für geschachtelte Syntax
- Beispiel für eine einzeilige Syntax
Bestandteile
condition
Erforderlich. Ausdruck Muss zu True
oder oder False
zu einem Datentyp ausgewertet werden, der implizit in konvertierbar ist Boolean
.
Wenn der Ausdruck eine Nullable-VariableBoolean
ist, die nothing auswertet, wird die Bedingung behandelt, als ob der Ausdruck ist False
, und die ElseIf
Blöcke werden ausgewertet, falls vorhanden, oder der Else
Block wird ausgeführt, wenn er vorhanden ist.
Then
Erforderlich in der Einzelzeilensyntax; optional in der Mehrzeilensyntax.
statements
Optional. Eine oder mehrere Anweisungen folgen If
...Then
die ausgeführt werden, wenn condition
sie True
ausgewertet werden.
elseifcondition
Erforderlich, wenn ElseIf
vorhanden ist. Ausdruck Muss zu True
oder oder False
zu einem Datentyp ausgewertet werden, der implizit in konvertierbar ist Boolean
.
elseifstatements
Optional. Eine oder mehrere Anweisungen folgen ElseIf
...Then
die ausgeführt werden, wenn elseifcondition
sie True
ausgewertet werden.
elsestatements
Optional. Mindestens eine Anweisung, die ausgeführt wird, wenn kein vorheriger condition
oder elseifcondition
Ausdruck ausgewertet wird True
.
End If
Beendet die mehrlinienige Version von If
...Then
...Else
Block.
Hinweise
Mehrliniensyntax
Wenn ein If
...Then
...Else
Die Anweisung ist aufgetreten, condition
wird getestet. Wenn condition
dies der Grund ist True
, werden die folgenden Then
Anweisungen ausgeführt. Wenn condition
dies der Fall ist False
, wird jede ElseIf
Anweisung (sofern vorhanden) in der Reihenfolge ausgewertet. Wenn eine True
elseifcondition
gefunden wird, werden die Anweisungen unmittelbar nach der zugeordneten ElseIf
Ausführung ausgeführt. Wenn keine elseifcondition
Auswertungen True
ausgeführt werden oder wenn keine ElseIf
Anweisungen vorhanden sind, werden die folgenden Else
Anweisungen ausgeführt. Nach dem Ausführen der Anweisungen nach Then
, ElseIf
oder Else
, wird die Ausführung mit der folgenden End If
Anweisung fortgesetzt.
Die ElseIf
beiden Klauseln Else
sind optional. Sie können beliebig viele ElseIf
Klauseln in einer If
...Then
...Else
anweisung, aber keine ElseIf
Klausel kann nach einer Else
Klausel angezeigt werden. If
...Then
...Else
Anweisungen können ineinander geschachtelt werden.
In der mehrzeiligen Syntax muss die If
Anweisung die einzige Anweisung in der ersten Zeile sein. Die ElseIf
Anweisungen Else
und End If
Anweisungen können nur durch eine Zeilenbezeichnung vorangestellt werden. Die If
...Then
...Else
block muss mit einer End If
Anweisung enden.
Tipp
Die Option... Case-Anweisung kann nützlicher sein, wenn Sie einen einzelnen Ausdruck auswerten, der mehrere mögliche Werte aufweist.
Single-Line Syntax
Sie können die Einzelzeilensyntax für eine einzelne Bedingung mit Code verwenden, um auszuführen, wenn dies wahr ist. Die Mehrfachzeilensyntax bietet jedoch mehr Struktur und Flexibilität und ist einfacher zu lesen, zu verwalten und zu debuggen.
Was dem Then
Schlüsselwort folgt, wird untersucht, um zu bestimmen, ob eine Anweisung eine einzelne Zeile If
ist. Wenn ein anderer Kommentar als ein Kommentar in Then
derselben Zeile angezeigt wird, wird die Anweisung als einzelzeilige If
Anweisung behandelt. Falls Then
nicht vorhanden, muss es der Anfang einer mehrfachzeiligen ...If
Then
...Else
.
In der Einzelzeilensyntax können Sie mehrere Anweisungen als Ergebnis einer If
Entscheidung ...Then
ausführen. Alle Anweisungen müssen sich auf derselben Linie befinden und durch Doppelpunkte getrennt werden.
Beispiel für eine mehrstufige Syntax
Im folgenden Beispiel wird die Verwendung der mehrlinienigen Syntax der If
...Then
...Else
Anweisung.
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.
Beispiel für geschachtelte Syntax
Das folgende Beispiel enthält geschachtelte If
...Then
...Else
Aussagen.
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.
Beispiel für Single-Line Syntax
Im folgenden Beispiel wird die Verwendung der Einzelzeilensyntax veranschaulicht.
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