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 Switch function

Many VB developers don't realize that the Switch built-in function can often save a lot of code. This function takes any number of (expr, value) pairs, it evaluates all expressions and return the value related to the first expression that is found to be True. Typically you can use a Switch function to replace a If...ElseIf block, as in:

' the standard way
If x = 0 Then
    result = 100
ElseIf x < y Then
    result = x
ElseIf x > y Then
    result = y
    ' X = Y and X <> 0
    result = 200
End If

' the more concise code
' Note that the Else clause is rendered with a True constant
result = Switch(x = 0, 100, x < y, x, x > y, y, True, 200)
If no expressions in the list returns a non-zero value, the Switch function returns Null. If you want to avoid this, just use True for the last expression in the list, as in the above example.

It is important to note that the Switch function always evaluate all the arguments passed to it, so you get an error whenever any argument is invalid, for example:

' the following statement raises a "Division by Zero" error if Y=0
MsgBox Switch(x = 0, "X is zero", y = 0, "Y is zero", True, "X/Y = " & x / y)

You can use the Switch function to quickly evaluate the minimum and the maximum of three values:

' the minimum of n1, n2, n3
min = Switch(n1 <= n2 And n1 <= n3, n1, n2 <= n1 And n2 <= n3, n2, True, n3)

' the maximum of n1, n2, n3
max = Switch(n1 >= n2 And n1 >= n3, n1, n2 >= n1 And n2 >= n3, n2, True, n3)
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