Share via


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 ] ]

Dit artikel bevat verschillende voorbeelden die het gebruik van de If...Then...Else Verklaring:

generator

condition
Vereist. Expressie. Moet evalueren naar True of False, of naar een gegevenstype dat impliciet kan worden omgezet in Boolean.

Als de expressie een null-variabeleBoolean 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 Truewordt geëvalueerd.

elseifcondition
Vereist indien ElseIf aanwezig. Expressie. 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 Truewordt geëvalueerd.

elsestatements
Optioneel. Een of meer instructies die worden uitgevoerd als er geen vorige condition of elseifcondition expressie wordt Truegeëvalueerd.

End If
Hiermee wordt de versie met meerdere regels van If...Then...Else Blok.

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 Trueelseifcondition bestand wordt gevonden, worden de instructies direct na de bijbehorende ElseIf uitgevoerd. Als er geen elseifcondition wordt geëvalueerd Trueof als er geen ElseIf instructies zijn, worden de volgende Else instructies uitgevoerd. Na het uitvoeren van de instructies na Then, ElseIfof Else, wordt de uitvoering voortgezet met de volgende End Ifinstructie.

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 ElseIfinstructies ElseEnd 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 Ifis. 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

Zie ook