線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1059
推到 Plurk!
推到 Facebook!

switch - falling through

尚未結案
Smallcat7315
一般會員


發表:19
回覆:22
積分:7
註冊:2005-05-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-04 19:48:25 IP:59.120.xxx.xxx 未訂閱
請問一下為什麼switch的條件case選項如果都不加break 則當滿足條件時 執行完敘述後 繼續往下執行 且不論後來case選項有無符合 皆會執行該case的敘述 譬如說 int a=10 switch (a) { case 11: printf("11"); case 10: printf("10"); case 9: printf("9"); case 8: printf("8"); default printf("7"); } 結果 輸出 10 9 8 7 雖然會繼續往下執行 但是a不等於9 8 7為何還是會輸出呢? 發表人 - smallcat7315 於 2005/10/04 19:51:04
李國維
高階會員


發表:42
回覆:287
積分:235
註冊:2003-02-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-04 20:12:07 IP:218.167.xxx.xxx 未訂閱
Smallcat7315: 就是因為沒有加上break.所以當程式進入swicth時會去找到符合的case.一直往下執行直到break或是switch結束. 所以當你的a=9的時候輸出為9 8 7
Smallcat7315
一般會員


發表:19
回覆:22
積分:7
註冊:2005-05-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-04 20:19:15 IP:218.168.xxx.xxx 未訂閱
引言: Smallcat7315: 就是因為沒有加上break.所以當程式進入swicth時會去找到符合的case.一直往下執行直到break或是switch結束. 所以當你的a=9的時候輸出為9 8 7
感覺還真是奇怪switch到底是loop還是selection @.@
Smallcat7315
一般會員


發表:19
回覆:22
積分:7
註冊:2005-05-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-04 20:19:59 IP:218.168.xxx.xxx 未訂閱
引言:
引言: Smallcat7315: 就是因為沒有加上break.所以當程式進入swicth時會去找到符合的case.一直往下執行直到break或是switch結束. 所以當你的a=9的時候輸出為9 8 7
感覺還真是奇怪switch到底是loop還是selection @.@ 因為還有用到break...
李國維
高階會員


發表:42
回覆:287
積分:235
註冊:2003-02-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-10-04 23:23:55 IP:218.167.xxx.xxx 未訂閱
Smallcat7315: switch是selection.不是loop 用到break是因為要告訴程式case到此結束.    請參考 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccelng/htm/statem_10.asp 並節錄一段相關文字 The break statement is used to stop execution and transfer control to the statement after the switch statement. Without a break statement, every statement from the matched case label to the end of the switch, including the default, is executed.
Smallcat7315
一般會員


發表:19
回覆:22
積分:7
註冊:2005-05-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-10-06 23:17:37 IP:61.216.xxx.xxx 未訂閱
引言: Smallcat7315: switch是selection.不是loop 用到break是因為要告訴程式case到此結束. 請參考 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccelng/htm/statem_10.asp 並節錄一段相關文字 The break statement is used to stop execution and transfer control to the statement after the switch statement. Without a break statement, every statement from the matched case label to the end of the switch, including the default, is executed.
謝謝你 我來看看
系統時間:2024-09-17 4:26:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!