switch的用法及例項分析
阿新 • • 發佈:2019-01-24
switch的用法
其具有一定的形式
swith<表示式>
{
case<常量表達式1>:語句序列 1;
case<常量表達式2>:語句序列 2;
...
case<常量表達式i>:語句序列 i;
case<常量表達式i+1>:語句序列 i+1;
default: 語句序列i+2;
}
- 常量表達式必須是—-整型、字元型或列舉型別
- default—預設標籤
(在執行判斷過程中不會逐一判斷,會根據開始所輸入的情況直接進行判斷再進入到接下來所對應的case標籤裡,隨後就顯示對應的結果,不符合的情況直接跳過)
例:
#include<stdio.h>
int main()
{
int ch =1;
switch(ch)
case 1:
printf("go to school \n");
break;
case 2:
printf("go to home \n");
break;
case 3:
printf("do nothing \n");
break;
default:
printf("\n");
break ;
}
(執行結果為:go to school)
規則
- 檢查有沒有匹配的case , 若有:跳到該case處執行;
- 若沒有,尋找default標籤,若有,則就跳到default標籤處執行;
- 若兩者都沒有,則跳過switch語句;
- 跳到指定位置後一直執行,直到switch語句的大括號結束,或遇到break語句提前結束;
- default標籤不一定放在最後面;
- default標籤可重疊(比如:當case 2 和 case 3同時出現在一處,兩者不矛盾,無論開始時輸入是2或3,都是判斷一處結果)。
分析
-
與 if else…的比較
- if語句功能完全覆蓋了 switch ……case ,所以switch語句的用法相當於if語句的一部分
- switch適用於“有限個選項”的應用場景
- 且不適於區間型的判斷,只適用於像1、2、3、4、5型的離散型量的判斷
- 選項太多也不適用
- 判斷過程中不會逐一判斷,會根據開始所輸入的情況直接進行判斷再進入到接下來所對應的case標籤裡