C 語(yǔ)言中的 switch/case 語(yǔ)句
很多時(shí)候 if 語(yǔ)句可以很好的滿足我們對(duì)于分支控制的需求,但是當(dāng)你要對(duì)于一系列有著相同表達(dá)式不同內(nèi)容的東西分類的時(shí)應(yīng)該怎么辦?這正式今天要介紹的內(nèi)容。
1. 語(yǔ)法
switch (表達(dá)式)
{
case 常量1:
語(yǔ)句1
break;
case 常量2:
語(yǔ)句2
break;
.
.
.
default:
語(yǔ)句n
}
2. 執(zhí)行過(guò)程
3. 應(yīng)用場(chǎng)景
當(dāng)一個(gè)變量有很多種可能,而每種情況下都要進(jìn)行不同的處理的時(shí)候就需要使用 switch-case 語(yǔ)句了。當(dāng)你要翻譯數(shù)字到英文的時(shí)候怎么辦?你會(huì)從大腦中迅速的匹配每個(gè)數(shù)字所對(duì)應(yīng)的英文。找到后通過(guò)你筆寫出來(lái)或者用嘴發(fā)聲說(shuō)出來(lái)。每次都會(huì)進(jìn)行一個(gè)匹配和處理的行為。這就是一個(gè) switch-case 過(guò)程。
4. 實(shí)例
#include <stdio.h>
int main()
{
int x = 5;
switch (x)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期日\(chéng)n");
break;
default:
printf("輸入的數(shù)字超出范圍。\n");
break;
}
return 0;
}
運(yùn)行結(jié)果:
星期五
程序中會(huì)匹配變量 x 的值。當(dāng)與條件一致時(shí)就會(huì)執(zhí)行相應(yīng)的語(yǔ)句,然后停止執(zhí)行后面的語(yǔ)句。可以嘗試修改里面的條件。如果將變量 x 的數(shù)值改為 10 請(qǐng)大家嘗試會(huì)輸出什么。
5. 小結(jié)
如果沒(méi)有 switch-case 語(yǔ)句,要想實(shí)現(xiàn)實(shí)例中程序要寫 7 個(gè) if 語(yǔ)句才能實(shí)現(xiàn),而使用 switch-case 則簡(jiǎn)化很多。很容易看到判斷條件以及相應(yīng)的處理語(yǔ)句。需要值得注意的是, switch-case 語(yǔ)句是順序執(zhí)行的,所以請(qǐng)注意不要忘記每條語(yǔ)句中的 break 語(yǔ)句。否則,這個(gè)語(yǔ)句會(huì)從頭執(zhí)行到尾,執(zhí)行全部的語(yǔ)句。這樣就失去了 switch-case 語(yǔ)句的作用。