switch case語法詳解


switch case語法詳解:

1、switch是“開關”的意思,它也是一種“選擇”語句,但它的用法非常簡單。

2、switch是多分支選擇語句。說得通俗點,多分支就是多個if。

從功能上說,switch語句和if語句完全可以相互取代。但從編程的角度,它們又各有各的特點,所以至今為止也不能說誰可以完全取代誰。

3、當嵌套的if比較少時(三個以內),用if編寫程序會比較簡潔。但是當選擇的分支比較多時,嵌套的if語句層數就會很多,導致程序冗長,可讀性下降。因此C語言提供switch語句來處理多分支選擇。所以if和switch可以說是分工明確的。在很多大型的項目中,多分支選擇的情況經常會遇到,所以switch語句用得還是比較多的。

4、switch的一般形式如下:

switch(表達式)
{ 
    case 常量表達式1:  語句1;  break;
    case 常量表達式2:  語句2;  break;
    … 
    case 常量表達式n:  語句n;  break;
    default:  語句n+1;  break;
}

 小練習:

        static void Main(string[] args)
        {
            /*
            輸入成績,輸出成績的等級:
            90以上為A,80-89為B,70-79為C,60-69為D,60分以下為E,
            輸入大於100或小於0時輸出“成績輸入錯誤”
             */
            Console.WriteLine("請輸入成績:");
            int score;
            try
            {
                score = Convert.ToInt32(Console.ReadLine());
                if (score > 100 || score < 0)
                {
                    Console.WriteLine("成績輸入錯誤,請重新輸入:");
                    score = Convert.ToInt32(Console.ReadLine());
                }
                else
                {
                    switch (score / 10)
                    {
                        case 10:
                        case 9:
                            Console.WriteLine("A");
                            break;
                        case 8:
                            Console.WriteLine("B");
                            break;
                        case 7:
                            Console.WriteLine("C");
                            break;
                        case 6:
                            Console.WriteLine("D");
                            break;
                        default:
                            Console.WriteLine("E");
                            break;
                    }
                }
            }
            catch
            {
                Console.WriteLine("輸入數據類型錯誤,程序退出!");
            }
        }

 

 

擴展資料:
說明:

1)、switch后面括號內的“表達式”必須是整數類型。也就是說可以是int型變量、char型變量,也可以直接是整數或字符常量,哪怕是負數都可以。但絕對不可以是實數,float型變量、double型變量、小數常量通通不行,全部都是語法錯誤。

2)、switch下的case和default必須用一對大括號{}括起來。

3)、當switch后面括號內“表達式”的值與某個case后面的“常量表達式”的值相等時,就執行此case后面的語句。執行完一個case后面的語句后,流程控制轉移到下一個case繼續執行。如果你只想執行這一個case語句,不想執行其他case,那么就需要在這個case語句后面加上break,跳出switch語句。

再重申一下:switch是“選擇”語句,不是“循環”語句。很多新手看到break就以為是循環語句,因為break一般給我們的印象都是跳出“循環”,但break還有一個用法,就是跳出switch。

4)、若所有的case中的常量表達式的值都沒有與switch后面括號內“表達式”的值相等的,就執行default后面的語句,default是“默認”的意思。如果default是最后一條語句的話,那么其后就可以不加break,因為既然已經是最后一句了,則執行完后自然就退出switch了。

5)、每個case后面“常量表達式”的值必須互不相同,否則就會出現互相矛盾的現象,而且這樣寫造成語法錯誤。

6)、“case常量表達式”只是起語句標號的作用,並不是在該處進行判斷。在執行switch語句時,根據switch后面表達式的值找到匹配的入口標號,就從此標號開始執行下去,不再進行判斷。

7)、各個case和default的出現次序不影響執行結果。但從閱讀的角度最好是按字母或數字的順序寫。

8)、當然你也可以不要default語句,就跟if…else最后不要else語句一樣。但最好是加上,后面可以什么都不寫。這樣可以避免別人誤以為你忘了進行default處理,而且可以提醒別人switch到此結束了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM