Difference between revisions of "NL/Documentation/BASIC Guide/Branching"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Created page with "{{DISPLAYTITLE:Aftakken}} {{NL/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=NL/Documentation/BASIC Guide/Operators |NextPage=NL/Documentati...")
 
Line 14: Line 14:
 
De meest algemene uitdrukking voor aftakking is de uitdrukking <tt>If</tt> zoals getoond in het volgende voorbeeld:
 
De meest algemene uitdrukking voor aftakking is de uitdrukking <tt>If</tt> zoals getoond in het volgende voorbeeld:
  
<source lang="oobas">
+
<syntaxhighlight lang="oobas">
 
If A > 3 Then
 
If A > 3 Then
 
   B = 2
 
   B = 2
 
End If
 
End If
</source>
+
</syntaxhighlight>
  
 
De toewijzing <tt>B = 2</tt> gebeurt alleen als de waarde van de variabele <tt>A</tt> groter is dan drie. Een variatie van de uitdrukking <tt>If</tt> is de clausule <tt>If/Else</tt>:
 
De toewijzing <tt>B = 2</tt> gebeurt alleen als de waarde van de variabele <tt>A</tt> groter is dan drie. Een variatie van de uitdrukking <tt>If</tt> is de clausule <tt>If/Else</tt>:
  
<source lang="oobas">
+
<syntaxhighlight lang="oobas">
 
If A > 3 Then
 
If A > 3 Then
 
   B = 2
 
   B = 2
Line 28: Line 28:
 
   B = 0
 
   B = 0
 
End If
 
End If
</source>
+
</syntaxhighlight>
  
 
In dit voorbeeld wordt aan de variabele <tt>B</tt> de waarde 2 toegekend als <tt>A</tt> groter is dan 3, anders wordt aan <tt>B</tt> de waarde 0 toegekend.
 
In dit voorbeeld wordt aan de variabele <tt>B</tt> de waarde 2 toegekend als <tt>A</tt> groter is dan 3, anders wordt aan <tt>B</tt> de waarde 0 toegekend.
Line 34: Line 34:
 
Voor meer complexe uitdrukkingen kunt u de uitdrukking <tt>If</tt> laten aflopen, bijvoorbeeld:
 
Voor meer complexe uitdrukkingen kunt u de uitdrukking <tt>If</tt> laten aflopen, bijvoorbeeld:
  
<source lang="oobas">
+
<syntaxhighlight lang="oobas">
 
If A = 0 Then
 
If A = 0 Then
 
   B = 0
 
   B = 0
Line 42: Line 42:
 
   B = 2
 
   B = 2
 
End If
 
End If
</source>
+
</syntaxhighlight>
  
 
Als de waarde van de variabele <tt>A</tt> gelijk is aan nul, wordt aan <tt>B</tt> de waarde 0 toegekend. Als <tt>A</tt> kleiner is dan 3 (maar niet gelijk aan nul), dan wordt aan <tt>B</tt> de waarde 1 toegekend. In alle andere gevallen (dat is dus als <tt>A</tt> is groter is dan of gelijk aan 3), wordt aan <tt>B</tt> de waarde 2 toegewezen.
 
Als de waarde van de variabele <tt>A</tt> gelijk is aan nul, wordt aan <tt>B</tt> de waarde 0 toegekend. Als <tt>A</tt> kleiner is dan 3 (maar niet gelijk aan nul), dan wordt aan <tt>B</tt> de waarde 1 toegekend. In alle andere gevallen (dat is dus als <tt>A</tt> is groter is dan of gelijk aan 3), wordt aan <tt>B</tt> de waarde 2 toegewezen.
Line 48: Line 48:
 
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:
 
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:
  
<source lang="oobas">
+
<syntaxhighlight lang="oobas">
 
If A > 3 Then  B = 2
 
If A > 3 Then  B = 2
 
</source>
 
</source>
Line 54: Line 54:
 
<source lang="oobas">
 
<source lang="oobas">
 
If A > 3 Then  B = 2  Else  B = 0
 
If A > 3 Then  B = 2  Else  B = 0
</source>
+
</syntaxhighlight>
  
 
== <tt>Select...Case</tt> ==
 
== <tt>Select...Case</tt> ==
Line 60: Line 60:
 
De uitdrukking <tt>Select...Case</tt> is een alternatief voor de aflopende uitdrukking <tt>If</tt> en wordt gebruikt als u een waarde moet controleren met verschillende voorwaarden:
 
De uitdrukking <tt>Select...Case</tt> is een alternatief voor de aflopende uitdrukking <tt>If</tt> en wordt gebruikt als u een waarde moet controleren met verschillende voorwaarden:
  
<source lang="oobas">
+
<syntaxhighlight lang="oobas">
 
Select Case DagVanDeWeek
 
Select Case DagVanDeWeek
 
   Case 1:
 
   Case 1:
Line 77: Line 77:
 
     NaamVanWeekdag = "zaterdag"
 
     NaamVanWeekdag = "zaterdag"
 
End Select
 
End Select
</source>
+
</syntaxhighlight>
  
 
In dit voorbeeld correspondeert de naam van een weekdag met een getal, zodat aan de variabele <tt>DagVanDeWeek</tt> de waarde 1 wordt toegekend voor <tt>zondag</tt>, 2 voor de waarde <tt>maandag</tt>, enzovoort.
 
In dit voorbeeld correspondeert de naam van een weekdag met een getal, zodat aan de variabele <tt>DagVanDeWeek</tt> de waarde 1 wordt toegekend voor <tt>zondag</tt>, 2 voor de waarde <tt>maandag</tt>, enzovoort.
Line 83: Line 83:
 
Het opdracht <tt>Select</tt> is niet beperkt tot eenvoudige 1:1 toewijzingen – u kunt ook vergelijkings-operatoren specificeren of expressies in een aftakking <tt>Case</tt> opsommen. Het volgende voorbeeld somt de meest belangrijke varianten voor de syntaxis op:
 
Het opdracht <tt>Select</tt> is niet beperkt tot eenvoudige 1:1 toewijzingen – u kunt ook vergelijkings-operatoren specificeren of expressies in een aftakking <tt>Case</tt> opsommen. Het volgende voorbeeld somt de meest belangrijke varianten voor de syntaxis op:
  
<source lang="oobas">
+
<syntaxhighlight lang="oobas">
 
Select Case Var
 
Select Case Var
 
   Case 1 To 5                   
 
   Case 1 To 5                   
Line 96: Line 96:
 
     ' ... alle andere gevallen
 
     ' ... alle andere gevallen
 
End Select
 
End Select
</source>
+
</syntaxhighlight>
  
 
Bekijk nu een misleidend (gevorderd) voorbeeld en een veel voorkomende fout:
 
Bekijk nu een misleidend (gevorderd) voorbeeld en een veel voorkomende fout:
  
<source lang="oobas">
+
<syntaxhighlight lang="oobas">
 
Select Case Var
 
Select Case Var
 
   Case Var = 8
 
   Case Var = 8
Line 107: Line 107:
 
     ' ... alle andere gevallen
 
     ' ... alle andere gevallen
 
End Select
 
End Select
</source>
+
</syntaxhighlight>
  
 
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
 
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
  
<source lang="oobas">
+
<syntaxhighlight lang="oobas">
 
Select Case Var
 
Select Case Var
 
   Case Var > 8 And Var < 11
 
   Case Var > 8 And Var < 11
Line 118: Line 118:
 
     ' ... alle andere gevallen
 
     ' ... alle andere gevallen
 
End Select
 
End Select
</source>
+
</syntaxhighlight>
  
  
 
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Branching}}
 
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Branching}}
 
{{PDL1}}
 
{{PDL1}}

Revision as of 14:41, 9 February 2021

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