| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1089 人关注过本帖
标题:一个关于select case 的问题
只看楼主 加入收藏
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
结帖率:78.95%
收藏
 问题点数:0 回复次数:7 
一个关于select case 的问题
select case theCases
    case 1,2,3,4,5
end select

上面这段是否等价于下面这段
for i=1 to 5
    select case theCases
        case i
            do something
    end select
next
搜索更多相关主题的帖子: select case 
2010-03-17 17:38
好学
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:622
专家分:318
注 册:2004-5-4
收藏
得分:0 
也就是说1,2,3,4,5这5种条件下返回的结果是一样的,等价于

if theCases = 1 or theCases = 2 or theCases = 3 or theCases = 4 or theCases = 5 then
    do something
end if

2010-03-17 17:46
好学
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
帖 子:622
专家分:318
注 册:2004-5-4
收藏
得分:0 
猜的,不一定对喉
2010-03-17 17:47
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
以下是引用好学在2010-3-17 17:46:00的发言:

也就是说1,2,3,4,5这5种条件下返回的结果是一样的,等价于

if theCases = 1 or theCases = 2 or theCases = 3 or theCases = 4 or theCases = 5 then
    do something
end if
如果我的条件数目是不定的,就不能这样用了。有什么好办法吗?

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-03-17 18:10
ioriliao
Rank: 7Rank: 7Rank: 7
来 自:广东
等 级:贵宾
威 望:32
帖 子:2829
专家分:647
注 册:2006-11-30
收藏
得分:0 
程序代码:
 Dim y As Integer
    Dim p As Integer
    y = 0
    p = 0
    Dim a(8) As Integer
    a(1) = 1
    a(2) = 3
    a(3) = 22
    a(4) = 6
    a(5) = 10
    a(7) = 222
    a(6) = 62
    a(8) = 102
    For i = 1 To 8
           Select Case a(i)
                y = y + 1
            End Select
    Next
    MsgBox y
    For j = 1 To 8
    Select Case Sheet1.Cells(1, j)
        Case 1, 3, 22, 6, 10, 222, 62, 102
            p = p + 1
    End Select
    Next
    MsgBox p
的确是不一样,有什么办法使得select case 可以使用不定数目的条件呢。
比如在select case 在10次循环中每次case的条件数目不同,
比如这次可能是
case 1,2,3
下次可能是
case 3,5,6,7,8
就是怎么样动态地添加case的条件。

/images/2011/147787/2011051411021524.jpg" border="0" />
2010-03-17 18:55
VBhere
Rank: 2
等 级:论坛游民
帖 子:21
专家分:19
注 册:2010-3-9
收藏
得分:0 
带加条件的吗?琢磨琢磨
2010-03-22 19:27
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
一个分支,不要用 select case 吧,直接用 IF 吧.
用循环来比较.

select case 本来就是多分支的选择的,并且分支数是固定的, 当然,条件可以不同.
并不适应你这种变化条件的分支条件.

你所提示的 代码 ,也无法运行 .

------------------------------------
select case theCases
    case 1,2,3,4,5
end select

上面这段是否等价于下面这段
for i=1 to 5
    select case theCases
        case i
            do something
    end select
next
----------不等价----------------
如果 I 符合条件不止一个的话,那么上面那段代码,只会执行一次,而下面这个循环的代码 ,会执行多次.

-----------------------------
到现在为止,还没搞清楚你倒底要什么.
多分支选择一般只用于一次性选择方面,一般并不使用循环来进行多分支选择.
使用循环的,一般就用 IF...then...else...end if 或 if...then .... elseif ...else .... end if 块


授人于鱼,不如授人于渔
早已停用QQ了
2010-03-22 19:49
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 
把你的条件动态写入一个数组,然后循环判断.
例如待判断的变量ValueA,条件数组Conditions(),这样对比就简单了
dim i as long
for i=0 to ubound(Conditions)-1
    if valueA=Conditions(i) then
        dosomething
        exit for
    end if
next
2010-03-22 20:59
快速回复:一个关于select case 的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051068 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved