switch語句及switch注意事項
switch語句
switch文法:
switch(表達式){
case 常量表達式1:
語句塊1
break;
case 常量表達式2:
語句塊2
break;
case 常量表達式3:
語句塊3
break;
………………
default:
語句塊n
break;
}
語義:先得出表達式的結果,根據結果跳轉到相應的case語句塊裡面去執行
表達式結果 == 常量表達式 就叫相應的case語句塊
如果case 後面的常量表達式沒有一個跟表達式結果對應的
那麼就跳轉到 default裡面執行語句塊n
switch語句的穿透問題:
當case塊裡面不加break的時候,會發生穿透
穿透意思:就是從這個case塊裡面執行完語句後,會繼續跳到下一個case塊裡面繼續執行
是以,我們必須加break,防止穿透
break可以跳出目前的switch語句
穿透問題的技巧:可以利用穿透将同一結果的case放在一起,類似于if(表達式)中使用||。
例:
switch文法:
switch(表達式){
case 常量表達式1:
case 常量表達式2:
case 常量表達式3:
語句塊1
break;
case 常量表達式4:
case 常量表達式5:
case 常量表達式6:
語句塊2
break;
………………
default:
語句塊n
break;
}
switch語句需要注意的地方:
1.switch語句後面的小括号隻能寫整數類型的表達式,否則會報錯
2.case後面隻能接常量表達式
3.case後面的常量表達式不能有重複的值
4.switch小括号後面不要加分号,可以加分号加在大括号後面
5.case後面不能立即聲明變量,除非在聲明前面加一條或者N條語句
6.非要在 case後面立即聲明變量怎麼辦??那麼就在case塊裡面加一個大括号
7.如果不加大括号聲明的變量,其他case塊也可以通路
8.default可以寫在任意位置,不影響結果
if 語句與switch語句的互換:
任何可以用if語句實作的功能,絕對也可以用switch語句來實作,同樣用switch語句可以做得東西,if也完全可以
如果要判斷範圍的話用if比較友善,用switch比較麻煩,不能直接用
如果是判斷具體的某個值,并且值不是很多的時候用switch友善和簡潔