C#學習回顧筆記九:switch選擇分支結構

1)什麼是switch語句?

switch語句能分支判斷選擇條件,並執行相應條件下的代碼。switch分支語句使得多條件的判斷變得更加容易,偶爾還用於替代複雜的if-else if-else……結構。

2)爲什麼使用switch語句?

上面提到過,switch有時候用於替換複雜的if-else if-else if……

switch讓程序根據表達式的值,選擇一個動作執行。可能可以發現switch從邏輯上來說與多分支語句if-else有些相似,但比if-else有更好的可讀性。畢竟if-else嵌套太多,對閱讀代碼也是一種折磨。

3)如何使用switch語句?

直接通過一個例子來說明switch的作用:

class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("請從21到23選擇一個數字輸入:");
            int num = Convert.ToInt32(Console.ReadLine());
            switch (num)
            {
                case 21:
                    Console.WriteLine("你輸入的肯定是21");
                    break;
                case 22:
                    Console.WriteLine("你輸入的肯定是22");
                    break;
                case 23:
                    Console.WriteLine("你輸入的肯定是23");
                    break;
            }
            Console.ReadKey();
        }
    }
本代碼中,用戶先錄入一個值,並被num變量接收。switch根據num的值選擇一個滿足條件的執行,如果num的值是22,則switch會選擇執行 case 22後面的代碼,然後執行break;並退出switch結構。如果用戶輸入的值是21或23,同理。但用戶輸入的是21到23之外的其他值,則因爲switch內沒有任何滿足的條件,因此並沒有任何結果。實際上,switch還可以設定一個特殊情況的分支條件,比如不滿足21到23的所有數字,可以把代碼修改爲:

class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("請從21到23選擇一個數字輸入:");
            int num = Convert.ToInt32(Console.ReadLine());
            switch (num)
            {
                case 21:
                    Console.WriteLine("你輸入的肯定是21");
                    break;
                case 22:
                    Console.WriteLine("你輸入的肯定是22");
                    break;
                case 23:
                    Console.WriteLine("你輸入的肯定是23");
                    break;
                default :
                    Console.WriteLine("你輸入的肯定不是21到23");
                    break;
            }
            Console.ReadKey();
        }
    }
只是在switch分支的最後面增加了一個default的判斷條件,表示當前面的都不滿足條件時,就執行這一句。switch還有一種用法:

class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("請輸入今天的星期數:");
            int num = Convert.ToInt32(Console.ReadLine());
            switch (num)
            {
                case 1:
                    Console.WriteLine("今天週一,上班");
                    break;
                case 2:
                    Console.WriteLine("今天週二,放假一天");
                    break;
                case 3:
                case 4:
                case 5:
                    Console.WriteLine("今天是週三、週四或週五,全天都不休息");
                    break;
                case 6:
                case 7:
                    Console.WriteLine("今天是週末,出遊");
                    break;
                default:
                    Console.WriteLine("你輸入的不是1到7嗎?");
                    break;
            }
            Console.ReadKey();
        }
    }
在這個代碼中,有一些case下面並沒有break;語句,比如case 3、case 4和case 5連在了一起,表示如果num的值是3、4或者5,都執行case 5:後面這一句。


發佈了44 篇原創文章 · 獲贊 15 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章