Aftakken

From Apache OpenOffice Wiki
Jump to: navigation, search
Book.png

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
</source>
Het tweede voorbeeld van deze pagina mag worden geschreven als:
<source lang="oobas">
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).
Personal tools