C語言中選擇結構分為if語句和switch語句兩種,兩種語句均可以依據條件不同而選擇執行不同的語句塊,但switch語句更多地應用於多分支結構。對於switch語句你都學會使用了嗎?本文將總結switch語句基本用法及使用技巧,希望能給大家提供參考。
1、 switch語句基本用法
C語言中,switch語句是一種多分支選擇語句,在實際應用中,要在多種情況中選擇一種情況,執行某一部分語句。
其使用一般形式如下:
switch(表達式)
{
case 常量表達式1:
語句塊1;
break;
case 常量表達式2:
語句塊2;
break;
……
case 常量表達式m:
語句塊m;
break;
default:
語句塊n;
break;
}
使用說明如下:
1) 程序執行時,首先計算表達式的值,與case後面的常量表達式值比較,若相等就執行對應部分的語句塊,執行完後利用break語句跳出switch分支語句。若表達式的值與所有的case後的常量表達式均不匹配,則執行default項對應的語句n,執行後跳出switch分支語句。
2) case後面的常量表達式只能是整型、字符型或枚舉型常量的一種;各case語句表達式的值各不相同,只起到一個標號作用,用於引導程序找到對應入口。
3) 這裡的語句塊可以是一條語句,或其它複合語句。語句塊可以不用花括號「{}」。
4) 各個case語句並不是程序執行的終點,通常需要執行break語句來跳出switch分支語句;若某case語句的語句塊被執行後,若其後沒有break語句,則順序執行其它case語句,直到遇到break語句或後面所有case語句全部執行完,再跳出switch分支語句。
5) 多個case可以共用一組執行語句塊。
6) 各個case和default出現的先後次序,並不影響執行結果。
7) default語句不是必須的,但建議加上作為默認情況處理項。
8) switch語句僅做相等性檢測,不能像if語句那樣做關係表達式或邏輯表達式計算,進行邏輯真假判斷。
2、 switch語句使用技巧
1) 儘量減少case語句數量
C語言C89標準指出,一個switch語句至少應支持257個case語句;而在C99標準中分支個數要求提升至1023個。在實際編程開發應用中,為了提高程序可讀性與執行效率,應儘量減少case語句的數量。儘量將長的switch語句轉換為嵌套的switch語句,即可以將高頻執行的語句放在一個case語句中,作為嵌套switch語句的最外層;把執行頻率較低的case語句放在另一個switch語句中,放置於嵌套switch語句的內層。
2) case語句結尾勿忘加break語句
在switch語句中,每個case語句的結尾不要忘記添加break語句,否則將導致多個分支重疊,除非有意而為之。
3) 注意case語句的排序
通常按照字母或數字順序來排序;若switch語句存在多個情況正常和異常的語句,應儘量將情況正常的語句排在前面;另外也可以根據執行頻率來排序,如果能預測出每條case語句的大概執行頻率,可以將頻率最高的語句排在前面。
好了,關於switch語句的用法今天就總結到這,如果大家有任何疑問請留言探討。我是「C語言知識傳播者」,志在瞄準C語言,挖掘和總結C語言的難點和痛點,給C語言編程愛好者和本領域從業人員提供參考,我會用心總結C語言知識的點點滴滴,您的關注是我持續創作的動力,請收藏本文、轉發並點讚,希望得到您的持續關注,謝謝!