資源描述:
《switch-case語句用法》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、switch-case語句用法2007-12-2508:11if語句處理兩個分支,處理多個分支時需使用if-else-if結(jié)構(gòu),但如果分支較多,則嵌套的if語句層就越多,程序不但龐大而且理解也比較困難.因此,C語言又提供了一個專門用于處理多分支結(jié)構(gòu)的條件選擇語句,稱為switch語句,又稱開關語句.使用switch語句直接處理多個分支(當然包括兩個分支).其一般形式為:引用----------------------------------------------------------------
2、----------------switch(表達式){case常量表達式1:語句1;break;case常量表達式2:語句2;break;……case常量表達式n:語句n;break;default:語句n+1;break;}--------------------------------------------------------------------------------switch語句的執(zhí)行流程是:首先計算switch后面圓括號中表達式的值,然后用此值依次與各個case的常量表達式比
3、較,若圓括號中表達式的值與某個case后面的常量表達式的值相等,就執(zhí)行此case后面的語句,執(zhí)行后遇break語句就退出switch語句;若圓括號中表達式的值與所有case后面的常量表達式都不等,則執(zhí)行default后面的語句n+1,然后退出switch語句,程序流程轉(zhuǎn)向開關語句的下一個語句.如下程序,可以根據(jù)輸入的考試成績的等級,輸出百分制分數(shù)段:引用--------------------------------------------------------------------------
4、------switch(grade){case'A':/*注意,這里是冒號:并不是分號;*/printf("85-100");break;/*每一個case語句后都要跟一個break用來退出switch語句*/case'B':/*每一個case后的常量表達式必須是不同的值以保證分支的唯一性*/printf("70-84");break;case'C':printf("60-69");break;case'D':printf("<60");break;default:printf("
5、error!");}--------------------------------------------------------------------------------(2)如果在case后面包含多條執(zhí)行語句時,也不需要像if語句那樣加大括號,進入某個case后,會自動順序執(zhí)行本case后面的所有執(zhí)行語句.如:引用--------------------------------------------------------------------------------{case'
6、A':if(grade<=100)printf("85-100");elseprintf("error");break;……--------------------------------------------------------------------------------(3)default總是放在最后,這時default后不需要break語句.并且,default部分也不是必須的,如果沒有這一部分,當switch后面圓括號中表達式的值與所有case后面的常量表達式的值都不相等時
7、,則不執(zhí)行任何一個分支直接退出switch語句.此時,switch語句相當于一個空語句.例如,將上面例子中switch語句中的default部分去掉,則當輸入的字符不是"A","B","C"或"D"時,此switch語句中的任何一條語句也不被執(zhí)行.(4)在switch-case語句中,多個case可以共用一條執(zhí)行語句,如:引用--------------------------------------------------------------------------------……case'A
8、':case'B':case'c':printf(">60");break;……--------------------------------------------------------------------------------在A,B,C3種情況下,均執(zhí)行相同的語句,即輸出">60".(5)最開始那個例子中,如果把每個case后的break刪除掉,則當greak='A'時,程序從printf("85-100")開始執(zhí)行,輸出結(jié)果為:引用-----