if .. then, meerdere keuzes

Status
Niet open voor verdere reacties.

janbe63

Gebruiker
Lid geworden
21 okt 2007
Berichten
64
Ik ben op zoek naar een "vlugge manier" om in een voorwaarde te kijken of hij aan 1 voldoet.
Tuurlijk kan dit met veel "or" keuze's.
bijv.

if a=1 or a=3 or a=6 or a=8 or a=12 or a=16 then

maar is er ook iets als

if (a in [1,3,6,8,12,16]) then

Jan:confused:
 
de enige andere manier die ik weet zou zijn alles in een array te zetten en het dan 1 voor 1 te checken, maar dat is alleen maar meer omslachtig :p
anders kan het niet, geloof ik.
 
Via 'select case ' kan dit:
Code:
Select Case a
  Case 1, 3, 6, 8, 12, 16
      ' Doe iets
  Case 2, 5
      ' Doe iets anders
  Case Else
      ' Doe niets?
End Select
 
Je kunt uiteraard ook nog een functie schrijven die het controleert.
 
Persoonlijk zou ik gaan voor leesbaarheid van de code en niet voor korte statements, die (a) voor een buitenstaander veel moeilijker te lezen zijn en (b) vaak niet eens sneller zijn qua performance.
 
Persoonlijk zou ik gaan voor leesbaarheid van de code en niet voor korte statements, die (a) voor een buitenstaander veel moeilijker te lezen zijn en (b) vaak niet eens sneller zijn qua performance.

Voor performance moet je sowieso niet bij VB6 zijn. :D
(verder kun je een functie ook een duidelijke naam geven hoor)

edit: heb even de tijd gevonden om een voorbeeld te maken.

Code:
Private Function check(n As Integer, ParamArray arr() As Variant) As Boolean
  Dim i As Integer
  For i = LBound(arr) To UBound(arr)
    If n = arr(i) Then check = True
  Next i
End Function

Private Sub Form_Load()
  If (check(6, 1, 2, 3, 4, 5)) Then MsgBox "huh?"
  If (check(6, 1, 2, 3, 4, 5, 6)) Then MsgBox "uiteraard ;-)"
End Sub

Qua snelheid moet ik etri trouwens wel gelijk geven. Deze methode zal wel trager zijn dan een select case. Maar wel eenvoudiger als je hem vaker wilt aanroepen.
 
Laatst bewerkt:
wauw, en ik altijd in mijn select case's "and" of "or" typen (niet dat ik ze vaak gebruik, maargoed)
:thumb:
 
De huidige functie is eigenlijk alleen maar geschikt om integers te vergelijken. Als je de eerste variabele als variant declareert kan ie ook nog strings e.d. vergelijken.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan