如何:测试表达式的多个值 (Visual Basic)

如果要将同一表达式与多个不同值进行比较,则可以使用 Select...Case 语句 (Visual Basic) 结构替换 If...Then...Else 语句 (Visual Basic) 结构。 虽然 If 和 ElseIf 语句可在每个语句中计算不同的表达式,但 Select 语句对单个表达式只计算一次,然后将其用在每次比较中。

计算一次表达式测试多个值

  • 使用 Select...Case 结构来指定表达式和要测试的值。 每个 Case 语句都可以包含一个或多个值、某个范围的值或值和比较运算符的组合。 使用 Case Else 语句可以处理前面的 Case 语句未测试的所有值。 下面的示例对这些情况进行演示。

    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 按照在 Select...Case 结构中出现的顺序,将表达式的值和 Case 语句中的值进行比较。 如果发现一个匹配项或一条 Case Else 语句,则执行相应的语句块。 在任何情况下,随后都会将控制转移到 End Select 语句后面的语句。

    可以使用任意数目的 Case 语句,无论是否使用了 Case 语句,都可以包含一条 Case Else 语句或将其省略。

Select...Case 结构的代码示例还可用作 IntelliSense 代码段。 在代码段选择器中,它位于**“Visual Basic 语言”**中。 有关更多信息,请参见如何:插入 IntelliSense 代码段

请参见

任务

如何:将控件转移到控件结构外 (Visual Basic)

如何:根据一个或多个条件运行语句 (Visual Basic)

如何:在发生错误时保持控制 (Visual Basic)

概念

决策结构 (Visual Basic)

循环结构 (Visual Basic)

其他控件结构 (Visual Basic)

嵌套的控件结构 (Visual Basic)

其他资源

控制流 (Visual Basic)