有过开发经验的程序员知道,条件语句在代码中的作用,在VB.NET中VB.NET CASE语句就是比较常用的一种,下面是详细的介绍和代码的演示。
如果要将同一个表达式与不同的值进行比较,则可以用 Select...Case 语句来替换 If...Then...Else 语句。所不同的是, If 和 ElseIf 语句可在每个语句中计算不同的表达式,而 Select 语句对单个表达式只计算一次,然后将其和不同的值比较。
我们来看一个示例,代码如下:
- Function bonus(ByVal performance As Integer, _
- ByVal salary As Decimal) As Decimal
- Select performance
- Case 1
- Return salary * 0.1
- Case 2
- Return salary * 0.3
- Case 3
- Return salary * 0.7
- Case 4
- Return salary * 0.9
- Case 5
- Return salary * 1.2
- End Select
- End Function
这个计算员工奖金 (bonus) 的函数 (Function) 有两个参数,一个是 performance,即员工的表现,另外一个是 salary,即员工的工资。员工的表现有 5 等,分别用 1,2,3,4,5 来表示。这个示例用了 Select...Case 语句,意思是当员工 performance 为 1 时,员工的奖金是工资乘以 0.1;当员工 performance 为 2 时,员工的奖金是工资乘以 0.3;当员工 performance 为 3 时,员工的奖金是工资乘以 0.7;员工 performance 为 4 时,员工的奖金是工资乘以 0.9;员工 performance 为 5 时,员工的奖金是工资乘以 1.2。
通过这个示例,你可以了解 Select...Case 语句的结构。如下:
- Select ... (某个表达式,比如一个变量)
- Case... (某个值)
- ...(执行代码)
- Case... (某个值)
- ...执行代码
- End Select
你可以使用任意数目的 VB.NET CASE语句增加要比较的值。
Visual Basic 按照在 Select...Case 结构中出现的顺序,将表达式的值和 Case 语句中的值进行比较。如果发现有一个 Case 的值匹配,就执行该 Case 相应的代码,执行完之后,不会再执行其它VB.NET Case 语句,直接就到 End Select 了。
VB.NET CASE Else语句
如果表达式不符合 Case语句的任何值,可以用 Case Else 语句来应付例外情况。比如上个示例中,除了 1 到 5 的数值外,假设员工 performance 为 0 或者大于 6 如何处理?
你可以改写程序,如下:
- Function bonus(ByVal performance As Integer, _
- ByVal salary As Decimal) As Decimal
- Select performance
- Case 1
- Return salary * 0.1
- Case 2
- Return salary * 0.3
- Case 3
- Return salary * 0.7
- Case 4
- Return salary * 0.9
- Case 5
- Return salary * 1.2
- Case Else
- Return 0
- End Select
- End Function
注意改写的示例增加了两行代码:
- Case Else
- Return 0
这两行代码的意思是,如果 performance 不等于 Case语句的任何值时,就执行 Case Else 后的语句,返回 0 。
VB.NET 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.3
- Case 3 To 7
- Return salary * 0.7
- Case 8 To 9
- Return salary * 0.9
- Case Is <= 15
- Return salary * 1.2
- Case Else
- Return 0
- End Select
- End Function
每个 Case 语句可以包含一个值,比如:
- Case 1
也可以包含多个值,多个值用逗号 (,) 分开,比如:
- Case 2,3
也可以是某个范围的值,比如:
- Case 3 To 7
也可以是值和比较运算符的组合,比如:
- Case Is <= 15
【编辑推荐】