请看:有关CASE语句

CCL 2000-06-23 06:11:00
我这个VB爱好者编了不少程序却没用过CASE语句,哪位大侠能指点一下,
CASE语句的用途,特点和优势?
感激不尽!!
...全文
261 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
CCL 2000-06-25
  • 打赏
  • 举报
回复
对不起,分没加上去,但还请大家多多包涵,帮帮忙吧!
CCL 2000-06-25
  • 打赏
  • 举报
回复
首先谢谢大家,其次,我看过好多程序,都有例如:
Caes 1
********
Case 2
********
Case 3,4,5,6,7,8,9
********
这是什么意思??请大家解释一下。我又加了40分。
bamboo 2000-06-25
  • 打赏
  • 举报
回复
偷点懒,把msdn上的东西拷给你。如果看明白了,嘻嘻,分数是不是有我一份?如果没有明白,Email 给我:cyp2000@elong.com,我给你详细解说,还可附示范工程的。

语法:

Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]

End Select

Select Case 语句的语法具有以下几个部分:

testexpression: 必要参数。任何数值表达式或字符串表达式。
expressionlist-n: 如果有 Case 出现,则为必要参数。其形式为 expression,expression To expression,Is comparisonoperator expression的一个或多个组成的分界列表。To 关键字可用来指定一个数值范围。如果使用 To 关键字,则较小的数值要出现在 To 之前。使用 Is 关键字时,则可以配合比较运算符(除 Is 和 Like 之外)来指定一个数值范围。如果没有提供,则 Is 关键字会被自动插入。
statements-n: 可选参数。一条或多条语句,当 testexpression 匹配expressionlist-n中的任何部分时执行。
elsestatements: 可选参数。一条或多条语句,当 testexpression 不匹配 Case 子句的任何部分时执行。


说明

如果 testexpression 匹配某个 Case expressionlist 表达式, 则在 Case 子句之后,直到下一个 Case 子句的 statements 会被执行;如果是最后一个子句,则会执行到 End Select。然后控制权会转移到 End Select 之后的语句。如果 testexpression 匹配一个以上的 Case 子句中的 expressionlist 表达式,则只有第一个匹配后面的语句会被执行。

Case Else 子句用于指明 elsestatements,当 testexpression 和所有的 Case 子句中的 expressionlist 都不匹配时,则会执行这些语句。虽然不是必要的,但是在 Select Case 区块中,最好还是加上 Case Else 语句来处理不可预见的 testexpression 值。如果没有 Case expressionlist 匹配 testexpression,而且也没有 Case Else 语句,则程序会从 End Select 之后的语句继续执行。

可以在每个 Case 子句中使用多重表达式或使用范围,例如,下面的语句是正确的:

Case 1 To 4, 7 To 9, 11, 13, Is > MaxNumber

注意 Is 比较运算符和使用在 Select Case 语句中的 Is 关键字并不相同。

也可以针对字符串指定范围和多重表达式。在下面的例子中,Case 所匹配的字符串为:等于 everything、按英文字母顺序落入从 nuts 到 soup 之间的字符串、以及 TestItem 所代表的当前值。

Case "everything", "nuts" To "soup", TestItem

Select Case 语句也可以是嵌套的。但每个嵌套的 Select Case 语句必须要有相应的 End Select 语句。
mafangsan 2000-06-25
  • 打赏
  • 举报
回复
Select Case x
case 1
语句A
case 2
语句B
case 3,4,5,6,7,8,9
语句C
end select
也就是说如果X=1执行A语句
如果X=2执行B语句
如果X=3、4、5、6、7、8、9中的任一个,执行C语句
但Case语句效率低,所以少用,
himhim 2000-06-23
  • 打赏
  • 举报
回复
它的功能太强大了,也太好用了.
不像C语言那样只能CASE常量,它也能CASE变量,甚至能CASE关系语句,如:
(meijp的例子好像是用于DElPHI的程序段,下面才是VB的代码)
Dim lngA as Long
lngA = 5
Select Case var
Case 0,1
msgbox "0 or 1"
Case 2-4
msgbox "2 or 3 or 4"
Case Is < 0
msgbox "-1 or -2 or -3 or ..."
Case lngA
msgbox "lngA(5)"
Case else
msgbox "6 or 7 or 8 or ..."
End Select
TopHead 2000-06-23
  • 打赏
  • 举报
回复
总的说来case语句可以实现更加复杂的分支选择结构。
meijg 2000-06-23
  • 打赏
  • 举报
回复
当你的程序有多过两个分支的时候,case语句就可以派上用场了
case 判断变量的值,然后去执行相应的操作,比如
case age of
10..15:statement;
16..20:statement;
21..30:statement
....
else
....
end;
就可以根据年龄来做出相应的判断
neo_wu 2000-06-23
  • 打赏
  • 举报
回复
主要是比If方便,不用写这么多If..else...end if.

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧