工具搜索引擎 加入收藏
意见反馈
帮助中心
繁體中文
首页 工具超市 产品信息 资讯中心 工具黄页 站长工具 实用工具 会员管理 联系我们  
广告投放
您当前的位置:工具网站长书库> vb2005教程

Select...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

你可以使用任意数目的 Case 语句增加要比较的值。

Visual Basic 按照在 Select...Case 结构中出现的顺序,将表达式的值和 Case 语句中的值进行比较。如果发现有一个 Case 的值匹配,就执行该 Case 相应的代码,执行完之后,不会再执行其它 Case 语句,直接就到 End Select 了。

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 。

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

相关文章:If...Then...Else 条件语句

编者:woyouxian[at]gmail[点]com

参考:微软 MSDN Visual Basic --> Visual Basic Programming Guide --> Control Flow --> Decision Structures --> How to: Test for Several Values of an Expression

时间:2006-12-13

返回上级目录
VB 2005 入门教程
安装 VB 2005
一个简单的 VB 2005 程序
什么是编程语言
什么是变量
数据类型概要

数据类型 - 整数和浮点数
数据类型 - 字符串
数据类型 - 日期
过程 - 子例程和函数
If...Then...Else 条件语句
Select...Case 条件语句
For...Next 循环语句