Aftakken
Gebruik uitdrukkingen voor aftakkingen om de uitvoering van een codeblok te beperken tot aan een bepaalde voorwaarde is voldaan.
If...Then...Else
De meest algemene uitdrukking voor aftakking is de uitdrukking If zoals getoond in het volgende voorbeeld:
If A > 3 Then
B = 2
End If
De toewijzing B = 2 gebeurt alleen als de waarde van de variabele A groter is dan drie. Een variatie van de uitdrukking If is de clausule If/Else:
If A > 3 Then
B = 2
Else
B = 0
End If
In dit voorbeeld wordt aan de variabele B de waarde 2 toegekend als A groter is dan 3, anders wordt aan B de waarde 0 toegekend.
Voor meer complexe uitdrukkingen kunt u de uitdrukking If laten aflopen, bijvoorbeeld:
If A = 0 Then
B = 0
ElseIf A < 3 Then
B = 1
Else
B = 2
End If
Als de waarde van de variabele A gelijk is aan nul, wordt aan B de waarde 0 toegekend. Als A kleiner is dan 3 (maar niet gelijk aan nul), dan wordt aan B de waarde 1 toegekend. In alle andere gevallen (dat is dus als A is groter is dan of gelijk aan 3), wordt aan B de waarde 2 toegewezen.
Een volledige uitdrukking If mag op één enkele regel worden geschreven, met een eenvoudiger syntaxis. Het eerste voorbeeld van deze pagina mag worden geschreven als:
If A > 3 Then B = 2
Het tweede voorbeeld van deze pagina mag worden geschreven als:
If A > 3 Then B = 2 Else B = 0
Select...Case
De uitdrukking Select...Case is een alternatief voor de aflopende uitdrukking If en wordt gebruikt als u een waarde moet controleren met verschillende voorwaarden:
Select Case DagVanDeWeek
Case 1:
NaamVanWeekdag = "zondag"
Case 2:
NaamVanWeekdag = "maandag"
Case 3:
NaamVanWeekdag = "dinsdag"
Case 4:
NaamVanWeekdag = "woensdag"
Case 5:
NaamVanWeekdag = "donderdag"
Case 6:
NaamVanWeekdag = "vrijdag"
Case 7:
NaamVanWeekdag = "zaterdag"
End Select
In dit voorbeeld correspondeert de naam van een weekdag met een getal, zodat aan de variabele DagVanDeWeek de waarde 1 wordt toegekend voor zondag, 2 voor de waarde maandag, enzovoort.
Het opdracht Select is niet beperkt tot eenvoudige 1:1 toewijzingen – u kunt ook vergelijkings-operatoren specificeren of expressies in een aftakking Case opsommen. Het volgende voorbeeld somt de meest belangrijke varianten voor de syntaxis op:
Select Case Var
Case 1 To 5
' ... Var ligt tussen de getallen 1 en 5 (inclusief de waarden 1 en 5).
Case > 100
' ... Var is groter dan 100
Case 6, 7, 8
' ... Var is 6, 7 of 8
Case 6, 7, 8, > 15, < 0
' ... Var is 6, 7, 8, groter dan 15, of kleiner dan 0
Case Else
' ... alle andere gevallen
End Select
Bekijk nu een misleidend (gevorderd) voorbeeld en een veel voorkomende fout:
Select Case Var
Case Var = 8
' ... Var is 0
Case Else
' ... alle andere gevallen
End Select
De uitdrukking (Var = 8) evalueert naar TRUE als Var 8 is en anders naar FALSE. TRUE is -1 en FALSE is 0. Het argument Select Case evalueert de uitdrukking, die TRUE of FALSE is, en vergelijkt dan die waarde met Var. Als Var 0 is, is er een overeenkomst. Indien u het laatste voorbeeld begrijpt dan weet u ook waarom dit voorbeeld niet doet wat het lijkt te doen
Select Case Var
Case Var > 8 And Var < 11
' ... Var is 0
Case Else
' ... alle andere gevallen
End Select
Content on this page is licensed under the Public Documentation License (PDL). |