程序员必看VB.NET CASE语句拓展篇

开发 后端
深入详解VB.NET CASE语句,同一个表达式与不同的值进行比较可以用 Select...Case 语句来替换 If...Then...Else 语句。

有过开发经验的程序员知道,条件语句在代码中的作用,在VB.NET中VB.NET CASE语句就是比较常用的一种,下面是详细的介绍和代码的演示。
如果要将同一个表达式与不同的值进行比较,则可以用 Select...Case 语句来替换 If...Then...Else 语句。所不同的是, If 和 ElseIf 语句可在每个语句中计算不同的表达式,而 Select 语句对单个表达式只计算一次,然后将其和不同的值比较。

我们来看一个示例,代码如下:

  1. Function bonus(ByVal performance As Integer, _  
  2. ByVal salary As Decimal) As Decimal  
  3. Select performance  
  4. Case 1  
  5. Return salary * 0.1  
  6. Case 2  
  7. Return salary * 0.3  
  8. Case 3  
  9. Return salary * 0.7  
  10. Case 4  
  11. Return salary * 0.9  
  12. Case 5  
  13. Return salary * 1.2  
  14. End Select  
  15. 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 语句的结构。如下:

  1. Select ... (某个表达式,比如一个变量)  
  2. Case... (某个值)  
  3. ...(执行代码)  
  4. Case... (某个值)  
  5. ...执行代码  
  6. 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 如何处理?

你可以改写程序,如下:

  1. Function bonus(ByVal performance As Integer, _  
  2. ByVal salary As Decimal) As Decimal  
  3. Select performance  
  4. Case 1  
  5. Return salary * 0.1  
  6. Case 2  
  7. Return salary * 0.3  
  8. Case 3  
  9. Return salary * 0.7  
  10. Case 4  
  11. Return salary * 0.9  
  12. Case 5  
  13. Return salary * 1.2  
  14. Case Else  
  15. Return 0  
  16. End Select  
  17. End Function  


注意改写的示例增加了两行代码:

  1. Case Else  
  2. Return 0 

这两行代码的意思是,如果 performance 不等于 Case语句的任何值时,就执行 Case Else 后的语句,返回 0 。

VB.NET Case语句可包含多个值和某个范围的值

  1. Function bonus(ByVal performance As Integer, _  
  2. ByVal salary As Decimal) As Decimal  
  3. Select performance  
  4. Case 1  
  5. Return salary * 0.1  
  6. Case 2,3  
  7. Return salary * 0.3  
  8. Case 3 To 7  
  9. Return salary * 0.7  
  10. Case 8 To 9  
  11. Return salary * 0.9  
  12. Case Is <= 15  
  13. Return salary * 1.2  
  14. Case Else  
  15. Return 0  
  16. End Select  
  17. End Function 

每个 Case 语句可以包含一个值,比如:

  1. Case 1  

也可以包含多个值,多个值用逗号 (,) 分开,比如:

  1. Case 2,3 

也可以是某个范围的值,比如:

  1. Case 3 To 7  

也可以是值和比较运算符的组合,比如:

  1. Case Is <= 15 

【编辑推荐】

  1. 深入介绍VB.NET类库 SmartRWLocker技巧
  2. VB.NET复制读取音频文件到剪贴板小技巧
  3. 深入概括VB.NET运行环境
  4. 快速使用VB.NET搜索程序实例
  5. WinRar对VB.NET文件压缩技巧归纳总结
责任编辑:田树 来源: 博客
相关推荐

2009-10-21 16:00:26

VB.NET CASE

2009-10-28 09:21:19

VB.NET技术

2011-03-10 13:45:24

VB.NET

2009-10-28 13:17:34

2009-10-15 17:41:14

VB.NET Impo

2009-11-04 08:53:57

VB.NET AddH

2009-10-28 10:31:23

VB.NET Impl

2009-10-28 14:13:32

VB.NET File

2009-10-16 11:21:54

VB.NET Decl

2009-10-15 11:42:05

VB.Net赋值语句

2009-10-22 16:46:03

VB.NET初步知识

2009-11-10 11:40:33

VB.NET运算操作

2009-10-27 14:49:11

VB.NET命名规范

2009-10-28 14:44:43

VB.NET Name

2010-01-21 18:35:56

VB.NET Impo

2009-10-10 15:43:51

2009-11-02 13:54:27

VB.NET shel

2009-10-29 15:28:38

VB.NET文件操作

2010-01-13 14:26:39

VB.NET开发

2011-07-12 13:35:04

程序员
点赞
收藏

51CTO技术栈公众号