作者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