How to: Test for Several Values of an Expression (Visual Basic)
When you are comparing the same expression to several different values, you can use the Select...Case Statement (Visual Basic) construction as an alternative to the If...Then...Else Statement (Visual Basic) construction. Whereas the If and ElseIf statements can evaluate a different expression in each statement, the Select statement evaluates a single expression only once and uses it for every comparison.
To evaluate an expression once and test several values
Use the Select...Case construction to specify the expression and the values to test. Each Case statement can contain one or more values, a range of values, or a combination of values and comparison operators. You can use a Case Else statement to handle all values not tested by the previous Case statements. The following example illustrates these possibilities.
Function bonus(ByVal performance As Integer, ByVal salary As Decimal) As Decimal Select performance Case 1 Return salary * 0.1 Case 2, 3 Return salary * 0.09 Case 5 To 7 Return salary * 0.07 Case 4, 8 To 10 Return salary * 0.05 Case Is < 15 Return 100 Case Else Return 0 End Select End Function
Visual Basic compares the value of the expression to the values in the Case statements in the order they appear in the Select...Case construction. If it finds a match or a Case Else statement, it runs the corresponding statement block. In any case, it then branches to the statement following the End Select statement.
You can have any number of Case statements, and you can include or omit one Case Else statement regardless of whether you have any Case statements.
A code example for the Select...Case construction is also available as an IntelliSense code snippet. In the code snippet picker, it is located in Visual Basic Language. For more information, see How to: Insert IntelliSense Code Snippets.
See Also
Tasks
How to: Transfer Control Out of a Control Structure (Visual Basic)
How to: Run Statements Depending on One or More Conditions (Visual Basic)
How to: Retain Control When an Error Occurs (Visual Basic)
Concepts
Decision Structures (Visual Basic)
Loop Structures (Visual Basic)
Other Control Structures (Visual Basic)
Nested Control Structures (Visual Basic)