[VB6 ] Select case 的問題

看板Visual_Basic作者 ([αλφα])時間17年前 (2009/01/15 15:25), 編輯推噓6(609)
留言15則, 6人參與, 最新討論串1/1
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

01/15 16:37, , 1F
土法煉鋼,條件分細一點。
01/15 16:37, 1F

01/16 01:25, , 2F
依你的要求,你不如寫成巢狀的IF Else還比較容易寫
01/16 01:25, 2F

01/16 01:29, , 3F
巢狀還不是一樣只會執行一個
01/16 01:29, 3F

01/16 01:29, , 4F
但是巢狀的IF else可以包含前面通過的條件啊
01/16 01:29, 4F

01/16 01:30, , 5F
寫成多個獨立的if就好了 這樣我執行不影響你執不執行
01/16 01:30, 5F

01/16 01:30, , 6F
寫巢狀還要包含前面通過條件 治絲益棼
01/16 01:30, 6F

01/16 01:33, , 7F
好吧,反正就是這種要求Select case反而不好用
01/16 01:33, 7F

01/16 01:34, , 8F
不過C好像可以的樣子... 沒用過我也不太清楚
01/16 01:34, 8F
我不知道C能不能,好像可以? 他們的是 Switch(x) { Case 一號 敘述區 break; Case 二號 敘述區 Break; Case 三號 敘述區 Break; } 一定要在每個Case後面加個Break; 不知道是不是break拿掉之後就能夠達成我前面說的那種QQ 太久以前學的C++了,記憶模糊@@ ※ 編輯: A1pha 來自: 124.9.132.97 (01/16 09:57)

01/16 09:59, , 9F
其實我就是因為嫌寫巢狀麻煩,所以才想說有沒有偷懶的方法:P
01/16 09:59, 9F

01/16 10:19, , 10F
以上面為例拿掉break之後,x為一號時會把後面全當作CASE
01/16 10:19, 10F

01/16 10:19, , 11F
一號的敘述區
01/16 10:19, 11F

01/16 20:59, , 12F
好怪喔QQ 聽起來很BUG的規則==
01/16 20:59, 12F

01/17 11:14, , 13F
上面C的寫法 也是條件符合就跳掉啊?
01/17 11:14, 13F

01/17 20:24, , 14F
vb的select是只有一條路徑 跟c語言的switch不一樣
01/17 20:24, 14F

01/19 14:32, , 15F
我是用BCB測試出來的結果,其他的compiler就不清楚了
01/19 14:32, 15F
文章代碼(AID): #19RkJF5J (Visual_Basic)