![]() ![]() | ||
You have to get a value from the user and respond in several different ways, but you're not looking forward to a long and tangled series of If…Then…Else statements. What can you do?
If your program can handle multiple values of a particular variable and you don't want to stack up a lot of If Else statements to handle them, you should consider Select Case. You use Select Case to test an expression, determine which of several cases it matches, and execute the corresponding code. Here's the syntax:
Select Case testexpression
[Case expressionlist-n
[statements-n]]…
[Case Else
[elsestatements]]
End Select
You use multiple Case statements in a Select statement, each specifying a different value to test against textexpression, and the code in the Case statement that matches is executed.
Here's an example using Select Case. In this example, I'm modifying the code from the previous topic to use Select Case instead of If…Then. Note that I'm also using the Select Is keyword, which you can use like this: Case Is condition, allowing you to test testexpression against some condition (such as Case Is > 7). You can also test testexpression against a range of values with the To keyword (such as Case 4 To 7). And Case Else can handle values we don't explicitly provide code for-it's just like the Else statement in an If…Then statement, because the code in it is executed if no other case matches. Here's the code:
Module Module1 Sub Main() Dim intInput As Integer System.Console.WriteLine("Enter an integer…") intInput = Val(System.Console.ReadLine()) Select Case intInput Case 1 System.Console.WriteLine("Thank you.") Case 2 System.Console.WriteLine("That's fine.") Case 3 System.Console.WriteLine("OK.") Case 4 To 7 System.Console.WriteLine("In the range 4 to 7.") Case Is > 7 System.Console.WriteLine("Definitely too big.") Case Else System.Console.WriteLine("Not a number I know.") End Select End Sub End Module
![]() ![]() | ||