详细了解:使用 Select Case 处理多项选择
更新:2007 年 11 月
在这一课,您将学习使用 Select Case 语句来运行基于多个条件的代码。
上一课演示了如何使用 If...Then 语句针对不同的条件运行不同的代码块。虽然通过使用 ElseIf 关键字可以在 If...Then 语句中计算两个以上的条件,但 Select Case 语句提供了计算多个条件的更好方法。
Select Case 语句允许您根据需要使用多个条件(或情况),方便地编写有多种选择情况下的代码。例如,假设您的程序使用一个 String 变量存储颜色选择并且您需要获得颜色值。Select Case 语句的代码可能如下所示:
Select Case Color
Case "red"
MsgBox("You selected red")
Case "blue"
MsgBox("You selected blue")
Case "green"
MsgBox("You selected green")
End Select
运行此代码时,Select Case 行确定表达式的值 (Color)。假定 Color 为一个 String 变量且此变量是一个包含 Select Case 语句的方法的参数。然后将 Color 的值与第一个 Case 语句的值相比较。如果两值匹配,则运行下一行代码,然后代码跳至 End Select 行;如果两值不匹配,则计算下一个 Case 行。
Case 语句可以有许多种不同形式——在上例中,它是一个 String。但是,它可以是任何数据类型或表达式。
您可以通过使用 To 关键字来计算一个数字范围,如下所示:
Case 1 To 10
在本例中,介于 1 和 10 之间的任一数字都将导致一个匹配。
您也可以在单个 Case 语句中计算多个值,通过按如下方式用逗号将这些值隔开:
Case "red", "white", "green"
在本例中,这三个值中任一个都将导致一个匹配。
您也可以按如下方式使用比较运算符和 Is 关键字来计算值。
Case Is > 9
在本例中,任何大于 9 的数都将导致一个匹配。
Case Else
在您知道所有可能的条件时,以上示例能够正常运行,但如果存在一个您没有考虑到的条件将会出现什么情况? 例如,如果 Color 的值为 yellow,代码将只计算这三种情况而找不到匹配,也不会显示消息框。
Case Else 语句可用于在找不到匹配时运行代码,如下例所示。
Select Case Color
Case "red"
MsgBox("You selected red")
Case "blue"
MsgBox("You selected blue")
Case "green"
MsgBox("You selected green")
Case Else
MsgBox("Please choose red, blue, or green")
End Select
在上面的代码中,如果 Color 的值为 yellow,代码会将它与前三个 Case 行相比较,但找不到匹配项。当到达 Case Else 行时,转到 End Select 之前将会运行下一行代码。
使用 Select Case 语句
在“文件”菜单上,选择“新建项目”。
在“新建项目”对话框的“模板”窗格中,单击“Windows 应用程序”。
在“名称”框中键入 SelectCase,再单击“确定”。
一个新的 Windows 窗体项目随即打开。
将一个“文本框”控件和一个“按钮”控件从“工具箱”中拖动到窗体上。
双击该 Button 控件以打开代码编辑器。
在 Button1_Click 事件处理程序中键入下面的代码。
Dim Number As Integer = CInt(Textbox1.Text) Select Case Number Case 1 MsgBox("Less than 2") Case 2 To 5 MsgBox("Between 2 and 5") Case 6, 7, 8 MsgBox("Between 6 and 8") Case 9 To 10 MsgBox("Greater than 8") Case Else MsgBox("Not between 1 and 10") End Select
按 F5 运行程序。
在文本框中,键入一个数字,然后单击按钮。
出现一个消息框,显示和您输入的数字相匹配的 Case 语句的消息。
后续步骤
在本主题中,您学习了如何使用 Select Case 语句在多个条件之间进行选择。此时,您可以进入下一课“出现错误时该怎么办:处理错误。”
下一课:出错时怎么办:处理错误