Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: VB4,VB5,VB6,VBS
Expertise: beginner
Oct 16, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Write concise code with the Choose function

The Choose function lets you often make more concise, albeit not faster, code, because it lets you replace a lengthy Select Case block. For example, the following code:

Select Case index
    Case 1
        result = 100
    Case 2
        result = 250
    Case 3
        result = 400
    Case 4
        result = 500
End Select
can be replaced by the more concise:

result = Choose(index, 100, 250, 400, 500)
If the index is less than one or higher than the number of values, the Choose function returns Null. Here's another way to use the Choose function in place of a If...ElseIf block:

' the standard way
If x < y Then
    result = 100
Elseif x = y Then
    result = 150
    result = 400
End If

' the more concise way
result = Choose(Sgn(x - y) + 2, 100, 150, 400)
Finally, the Choose function is often useful to quickly initialize an array of number or strings:

' the standard way
Dim names(1 To 5) As String
names(1) = "Robert"
names(2) = "Patrick"
names(3) = "Timothy"
names(4) = "James"
names(5) = "Frank"

' the more concise way
Dim names(1 To 5) As String, i As Integer
For i = 1 To 5
    names(i) = Choose(i, "Robert", "Patrick", "Timothy", "James", "Frank")
It is evident that the more array elements you must initialize, the more code you save using this technique.

However, in all cases you should keep in mind that the Choose function is always slower than the Select Case or If block it is meant to replace, therefore it shouldn't be used in time-critical loops.

Francesco Balena
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date