C# Online ! 第廿二篇:邏輯課程 Part III ~ C# 控制陳述式–switch
各位朋友大家好! 這次要跟大家介紹的是 switch 陳述式 ,其實 switch 陳述式跟 if 陳述式 有些類似,他們都會依照判斷條件的結果去執行底下的程式,不同的地方在於如果我們使用 switch陳述式可以把本來要去判斷很多次的事情一次搞定,因為用 switch 會依照判斷條件的值去控制該執行哪一個動作,其中就是用 case 陳述式的方式來處理多重選取。
我們先來看一下 switch 陳述式的語法:
switch ( 參數值 )
break;
break; ..
..
break;
break; |
先從以上的語法介紹來解釋,參數值會去跟每一個比較參數去比對值是否相等,一定要兩個的值是一樣的,才會去執行它底下的陳述式,例如參數值去跟比較參數1的值做比對,如果比對的結果是不相等的,則會繼續去比對比較參數2的值是否相等,兩個的值是一樣的,才會去執行它底下的陳述式,如果一直比對到比較參數N都是不相等的,則會去執行default底下的陳述式。其實就很像我們上一篇介紹的if-else if去判斷條件一樣,當判斷條件為true,則執行底下的陳述式,否則(為false)繼續往下做條件判斷,只是這邊用switch其中的case幫我們搞定了這些條件判斷。
有幾點要注意的地方:
- 一個 switch 陳述式可包含無限的 case 執行個體,但之中不能兩個 case 陳述式或多個擁有相同的值。
- 陳述式主體的執行從選定的陳述式開始,一直到 break 才會將程式控制權轉移出 case 主體為止。
- 如果沒有符合參數值的 case 運算式,程式控制權會轉移到選擇性 default 標籤隨後的陳述式。
- switch 陳述式內最多只能有一個 default 標記。
- 每個 case 區塊之後 (連 default 陳述式都包括在內) 都需要跳躍陳述式 (Jump Statement),例如 break。
- 如果沒有 default 標記,程式控制權就會轉移到 switch 之外。
舉一個簡單的例子:
這個例子我們可以很清楚的看到,int caseSwitch = 3; 所以會控制去執行 case 3 底下的陳述式,所以最後會顯示 case 3 在螢幕上。這邊如果我們把 非 1、2、3 的值給 caseSwitch ,則會跳到 default ,最後會顯示 Default case 在螢幕上。
還有一種方法是可以讓不同的值,去執行同一段程式陳述式,看以下的例子:
以上的例子,當 caseSwitch = 0,或是1、或是 2 都會顯示 Case 0,1or2 在螢幕上,如果caseSwitch 不等於 0, 1, 2, 3, 4 的話,則會跳到default,會顯示 Default case,not 0,1,2,3,or4. 在螢幕上,這個方法可以靈活的運用唷。
最後的舉例,我們把 switch運用在點餐上面,依照點的餐點不同,顯示出點的餐點與金額,例子如下:
以上的例子,讓我想吃魯肉飯.. 會先把我們的餐點顯示在螢幕上,再讓客人去輸入他想吃的餐點號碼,最後會算出餐點的價錢,並且顯示謝謝光臨,看一下底下執行後的畫面吧:
有興趣的朋友,可以試著練習一次看看唷!
希望資深的前輩們與跟我一樣剛開始想學習C#的初心者,可以給我一些建議跟鼓勵,或是幫我按個讚!您的鼓勵就是我的動力! 感謝您們 ~
(本文中相關內容有參閱、引述MSDN)
如果這篇文章對您有幫助,請幫我點選「我要推薦」、按個讚、或是幫我推到其他平台;您的鼓勵將會是我繼續努力的一大動力!!
若是有任何指教或是需要討論之處,也不用客氣,請在下面留言給我,我將會儘速回覆~