Als... Dan... Else-instructie (Visual Basic)
Hiermee wordt een groep instructies voorwaardelijk uitgevoerd, afhankelijk van de waarde van een expressie.
Syntaxis
' Multiline syntax:
If condition [ Then ]
[ statements ]
[ ElseIf elseifcondition [ Then ]
[ elseifstatements ] ]
[ Else
[ elsestatements ] ]
End If
' Single-line syntax:
If condition Then [ statements ] [ Else [ elsestatements ] ]
Snelle koppelingen naar voorbeeldcode
Dit artikel bevat verschillende voorbeelden die het gebruik van de If
...Then
...Else
verklaring:
- Voorbeeld van syntaxis met meerdere regels
- Voorbeeld van geneste syntaxis
- Voorbeeld van syntaxis met één regel
generator
condition
Vereist. Uitdrukking. Moet evalueren naar True
of False
, of naar een gegevenstype dat impliciet kan worden omgezet in Boolean
.
Als de expressie een null-variabele Boolean
is die naar Niets evalueert, wordt de voorwaarde behandeld alsof de expressie isFalse
, en worden de ElseIf
blokken geëvalueerd als deze bestaan of wordt het Else
blok uitgevoerd als het bestaat.
Then
Vereist in de syntaxis van één regel; optioneel in de syntaxis met meerdere regels.
statements
Optioneel. Een of meer instructies na If
...Then
die worden uitgevoerd als condition
dit True
wordt geëvalueerd.
elseifcondition
Vereist indien ElseIf
aanwezig. Uitdrukking. Moet evalueren naar True
of False
, of naar een gegevenstype dat impliciet kan worden omgezet in Boolean
.
elseifstatements
Optioneel. Een of meer instructies na ElseIf
...Then
die worden uitgevoerd als elseifcondition
dit True
wordt geëvalueerd.
elsestatements
Optioneel. Een of meer instructies die worden uitgevoerd als er geen vorige condition
of elseifcondition
expressie wordt True
geëvalueerd.
End If
Hiermee wordt de versie met meerdere regels van If
...Then
...Else
blokkeren.
Opmerkingen
Syntaxis met meerdere regels
Wanneer een If
...Then
...Else
er een instructie is aangetroffen, condition
wordt getest. Als condition
dat het is True
, worden de volgende Then
instructies uitgevoerd. Als condition
dat het geval is False
, wordt elke ElseIf
instructie (indien aanwezig) op volgorde geëvalueerd. Wanneer een True
elseifcondition
bestand wordt gevonden, worden de instructies direct na de bijbehorende ElseIf
uitgevoerd. Als er geen elseifcondition
wordt geëvalueerd True
of als er geen ElseIf
instructies zijn, worden de volgende Else
instructies uitgevoerd. Na het uitvoeren van de instructies na Then
, ElseIf
of Else
, wordt de uitvoering voortgezet met de volgende End If
instructie.
De ElseIf
en Else
componenten zijn beide optioneel. U kunt zoveel ElseIf
componenten hebben als u wilt in een If
...Then
...Else
instructie, maar er kan geen ElseIf
component worden weergegeven na een Else
component. If
...Then
...Else
instructies kunnen tussen elkaar worden genest.
In de syntaxis met meerdere regels moet de If
instructie de enige instructie op de eerste regel zijn. De ElseIf
instructies Else
End If
en instructies kunnen alleen worden voorafgegaan door een regellabel. De If
...Then
...Else
blok moet eindigen met een End If
instructie.
Tip
De knop Selecteren... Case-instructie kan nuttiger zijn wanneer u één expressie met verschillende mogelijke waarden evalueert.
Syntaxis van één regel
U kunt de syntaxis van één regel voor één voorwaarde met code gebruiken om uit te voeren als deze waar is. De syntaxis met meerdere regels biedt echter meer structuur en flexibiliteit en is gemakkelijker te lezen, te onderhouden en fouten op te sporen.
Wat volgt op het Then
trefwoord wordt onderzocht om te bepalen of een instructie één regel If
is. Als er iets anders dan een opmerking wordt weergegeven na Then
dezelfde regel, wordt de instructie behandeld als een instructie met één regel If
. Als Then
deze afwezig is, moet dit het begin zijn van een meerdere regel If
...Then
...Else
.
In de syntaxis van één regel kunt u meerdere instructies laten uitvoeren als gevolg van een If
...Then
-beslissing. Alle instructies moeten zich op dezelfde regel bevinden en worden gescheiden door dubbele punten.
Voorbeeld van syntaxis met meerdere regels
In het volgende voorbeeld ziet u het gebruik van de syntaxis met meerdere regels van de If
...Then
...Else
verklaring.
'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.
Voorbeeld van geneste syntaxis
Het volgende voorbeeld bevat geneste If
...Then
...Else
Verklaringen.
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.
Voorbeeld van syntaxis met één regel
In het volgende voorbeeld ziet u het gebruik van de syntaxis van één regel.
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