作者A1pha ([αλφα])
看板Visual_Basic
标题[VB6 ] Select case 的问题
时间Thu Jan 15 15:25:01 2009
Select Case 是提供好几个条件,
符合条件的话,就执行叙述。
那麽假使有许多条件都符合的话,
他只会执行第一个符合的,
例如:
x=5
Select Case x
Case 0 to 8
? A
Case 4 to 10
? B
Case 7 to 15
? C
end select
他只会执行 「? A」这个叙述。
那麽有办法让他做到「? A」「? B」都执行吗?
也就是说,并非找到一个CASE就跳出去,
而是所有的CASE都检查并且执行所有符合的这样?
--
与其去懊悔做不到的事,
倒不如去做能做的事。
就算它和结果无关,
还是能够往前迈进。
http://www.wretch.cc/blog/AlphaWing/24383501
From xxxHoLic vol.9
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 124.9.132.97
1F:→ yeeddt:土法炼钢,条件分细一点。 01/15 16:37
2F:推 Peruheru:依你的要求,你不如写成巢状的IF Else还比较容易写 01/16 01:25
3F:→ MOONRAKER:巢状还不是一样只会执行一个 01/16 01:29
4F:推 Peruheru:但是巢状的IF else可以包含前面通过的条件啊 01/16 01:29
5F:→ MOONRAKER:写成多个独立的if就好了 这样我执行不影响你执不执行 01/16 01:30
6F:→ MOONRAKER:写巢状还要包含前面通过条件 治丝益棼 01/16 01:30
7F:推 Peruheru:好吧,反正就是这种要求Select case反而不好用 01/16 01:33
8F:→ Peruheru:不过C好像可以的样子... 没用过我也不太清楚 01/16 01:34
我不知道C能不能,好像可以?
他们的是
Switch(x)
{
Case 一号
叙述区
break;
Case 二号
叙述区
Break;
Case 三号
叙述区
Break;
}
一定要在每个Case後面加个Break;
不知道是不是break拿掉之後就能够达成我前面说的那种QQ
太久以前学的C++了,记忆模糊@@
※ 编辑: A1pha 来自: 124.9.132.97 (01/16 09:57)
9F:→ A1pha:其实我就是因为嫌写巢状麻烦,所以才想说有没有偷懒的方法:P 01/16 09:59
10F:推 yeeddt:以上面为例拿掉break之後,x为一号时会把後面全当作CASE 01/16 10:19
11F:→ yeeddt:一号的叙述区 01/16 10:19
12F:→ A1pha:好怪喔QQ 听起来很BUG的规则== 01/16 20:59
13F:→ unget:上面C的写法 也是条件符合就跳掉啊? 01/17 11:14
14F:推 fumizuki:vb的select是只有一条路径 跟c语言的switch不一样 01/17 20:24
15F:推 yeeddt:我是用BCB测试出来的结果,其他的compiler就不清楚了 01/19 14:32