看板 Visual_Basic 關於我們 聯絡資訊
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
yeeddt:土法煉鋼,條件分細一點。 01/15 16:37
Peruheru:依你的要求,你不如寫成巢狀的IF Else還比較容易寫 01/16 01:25
MOONRAKER:巢狀還不是一樣只會執行一個 01/16 01:29
Peruheru:但是巢狀的IF else可以包含前面通過的條件啊 01/16 01:29
MOONRAKER:寫成多個獨立的if就好了 這樣我執行不影響你執不執行 01/16 01:30
MOONRAKER:寫巢狀還要包含前面通過條件 治絲益棼 01/16 01:30
Peruheru:好吧,反正就是這種要求Select case反而不好用 01/16 01:33
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)
A1pha:其實我就是因為嫌寫巢狀麻煩,所以才想說有沒有偷懶的方法:P 01/16 09:59
yeeddt:以上面為例拿掉break之後,x為一號時會把後面全當作CASE 01/16 10:19
yeeddt:一號的敘述區 01/16 10:19
A1pha:好怪喔QQ 聽起來很BUG的規則== 01/16 20:59
unget:上面C的寫法 也是條件符合就跳掉啊? 01/17 11:14
fumizuki:vb的select是只有一條路徑 跟c語言的switch不一樣 01/17 20:24
yeeddt:我是用BCB測試出來的結果,其他的compiler就不清楚了 01/19 14:32