天天看點

結構化程式設計:多支條件判斷switch case

有些條件判斷并非簡單的真假模式,而是在多種可能中選擇一個處理。這種情況,我們需要使用switch case語句進行處理。

以下是對上海地鐵自動售票機的模拟

static void Main(string[] args)  

{  

    //輸出提示資訊  

    System.Console.WriteLine("歡迎使用上海地鐵自動售票機");  

    System.Console.WriteLine("請選擇你需要購買的票價:");  

    System.Console.WriteLine("1  2  3");  

    System.Console.WriteLine("4  5  6");  

    System.Console.WriteLine("7  8  9");  

    string option = System.Console.ReadLine();//接受使用者在控制台輸入的字元,以回車結束  

    switch (option)  

    {  

        case "3":  

            System.Console.WriteLine("你選擇了3元票價");  

            break;  

        case "4":  

            System.Console.WriteLine("你選擇了4元票價");  

        case "5":  

            System.Console.WriteLine("你選擇了5元票價");  

        case "6":  

            System.Console.WriteLine("你選擇了6元票價");  

    }  

}  

上述代碼運作的結果如圖。如果你輸入正确的數字:3、4、5、6系統就會提示你選擇的票價,如果你輸入的是超過範圍的數字,則系統沒有任何提示。

switch 語句是一個控制語句,它通過将控制傳遞給其體内的一個 case 語句來處理多個選擇。控制傳遞給與給定的值比對的 case 語句。switch 語句可以包括任意數目的 case 執行個體,但是任何兩個 case 語句都不能具有相同的值。語句體從標明的語句開始執行,直到 break 将控制傳遞到 case 體以外。

switch 語句除了可以處理有比對的值的情況,還可以處理沒有任何 case 表達式與開關值比對的情況,這種控制由default 标簽處理。如果沒有 default 标簽,則控制傳遞到 switch 以外。

下面的代碼在原先基礎上添加了default 标簽,提供了使用者的更多的體驗。

    System.Console.WriteLine("3元,請輸入3");  

    System.Console.WriteLine("4元,請輸入4");  

    System.Console.WriteLine("5元,請輸入5");  

    System.Console.WriteLine("6元,請輸入6");  

        default:  

            System.Console.WriteLine("對不起,你輸入了一個超越範圍的值");  

任何兩個 case 語句不能具有相同的值。C# 不支援從一個 case 标簽顯式貫穿到另一個 case 标簽,在每一個 case 塊的後面,都必須有一個跳轉語句。但例外的是:當 case 語句中沒有代碼時,空 case 标簽可以從一個 case 标簽貫穿到另一個。

以下代碼描述了當使用者輸入1、2、3的時候,系統都認為使用者要選擇3元的票價。當輸入了6、7、8、9的時候,都認為使用者選擇了6元的票價。

而使用者輸入了一個不在提示範圍的值,會提示使用者輸入錯誤。

結構化程式設計:多支條件判斷switch case

Code

初學者注意:

當對一個變量(僅一個變量)需要作多條間判斷或者類型判斷,我們建議可以考慮使用switch。

代碼要注意縮進,在VS2008的IDE中,使用菜單【編輯】|【進階】|【設定文檔的格式】可以自動完成縮進。

本文轉自shyleoking 51CTO部落格,原文連結:http://blog.51cto.com/shyleoking/805199