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 ] ]
Direktlinks zum Beispielcode
Dieser Artikel enthält mehrere Beispiele, die die Verwendung der If
...Then
...Else
-Anweisung veranschaulichen:
- Beispiel für die mehrzeilige Syntax
- Beispiel für die geschachtelte Syntax
- Beispiel für die einzeilige Syntax
Bestandteile
condition
Erforderlich. Ausdruck Muss als True
oder False
oder als ein Datentyp ausgewertet werden, der implizit in Boolean
konvertiert werden kann.
Wenn es sich bei dem Ausdruck um eine Nullwerte zulassende Boolean
-Variable handelt, die als Nothing ausgewertet wird, dann wird die Bedingung so behandelt, als ob der Ausdruck False
lauten würde, und die ElseIf
-Blöcke (sofern vorhanden) bzw. der Else
-Block (sofern vorhanden) werden bzw. wird ausgeführt.
Then
In der einzeiligen Syntax erforderlich, in der mehrzeiligen Syntax optional.
statements
Optional. Eine oder mehrere Anweisungen nach If
...Then
, die ausgeführt werden, wenn condition
als True
ausgewertet wird.
elseifcondition
Erforderlich, wenn ElseIf
vorhanden ist. Ausdruck Muss als True
oder False
oder als ein Datentyp ausgewertet werden, der implizit in Boolean
konvertiert werden kann.
elseifstatements
Optional. Eine oder mehrere Anweisungen nach ElseIf
...Then
, die ausgeführt werden, wenn elseifcondition
als True
ausgewertet wird.
elsestatements
Optional. Eine oder mehrere Anweisungen, die ausgeführt werden, wenn kein vorheriger condition
- oder elseifcondition
-Ausdruck als True
ausgewertet wird.
End If
Beendet die mehrzeilige Version eines If
...Then
...Else
-Blocks.
Bemerkungen
Mehrzeilige Syntax
Wird eine If
...Then
...Else
-Anweisung gefunden, wird condition
getestet. Bei einer Auswertung von condition
als True
werden die Anweisungen nach Then
ausgeführt. Wird condition
als False
ausgewertet, wird jede ElseIf
-Anweisung (falls vorhanden) der Reihe nach ausgewertet. Wenn True
elseifcondition
gefunden wird, werden die Anweisungen unmittelbar nach dem zugehörigen ElseIf
-Element ausgeführt. Wenn keine elseifcondition
als True
ausgewertet wird, 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 Ausführung mit der Anweisung nach End If
fortgesetzt.
Die Klauseln ElseIf
und Else
sind optional. Sie können beliebig viele ElseIf
-Klauseln in einer If
...Then
...Else
-Anweisung verwenden, aber es darf keine ElseIf
-Klausel nach einer Else
-Klausel stehen. 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. Den Anweisungen ElseIf
, Else
und End If
kann nur eine Zeilenbezeichnung vorangestellt werden. Der If
...Then
...Else
-Block muss mit einer End If
-Anweisung enden.
Tipp
Wenn Sie einen einzelnen Ausdruck auswerten, der über mehrere mögliche Werte verfügt, kann eine Select...Case-Anweisung sinnvoller sein.
Einzeilige Syntax
Sie können die einzeilige Syntax für eine einzelne Bedingung mit Code verwenden, der bei einer Auswertung der Bedingung als „true“ ausgeführt wird. Die mehrzeilige Syntax bietet jedoch mehr Struktur und Flexibilität und lässt sich leichter lesen, verwalten und debuggen.
Um festzustellen, ob es sich um eine einzeilige If
-Anweisung handelt, wird geprüft, was auf das Schlüsselwort Then
folgt. Wenn nach Then
in derselben Zeile etwas anderes als ein Kommentar folgt, wird die Anweisung als einzeilige If
Anweisung behandelt. Ist Then
nicht vorhanden, muss es sich um den Beginn einer mehrzeiligen If
...Then
...Else
-Anweisung handeln.
In der einzeiligen Syntax können Sie mehrere Anweisungen als Ergebnis einer If
...Then
-Entscheidung ausführen. Alle Anweisungen müssen sich in derselben Zeile befinden und durch Doppelpunkte voneinander getrennt sein.
Beispiel für die mehrzeilige Syntax
Das folgende Beispiel veranschaulicht die Verwendung der mehrzeiligen Syntax für die If
...Then
...Else
-Anweisung.
'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)
'This example displays output like the following:
' There are 4 items.
Beispiel für die geschachtelte Syntax
Das folgende Beispiel enthält geschachtelte If
...Then
...Else
-Anweisungen.
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
'This example displays output like the following:
'Time Check is False.
Beispiel für die einzeilige Syntax
Das folgende Beispiel veranschaulicht die Verwendung der einzeiligen Syntax.
Private Sub SingleLine()
'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
'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