C語言示例講解switch分支語句的用法
1、瞭解switch分支語句
switch語句也是一種分支語句,常常用於多分支的情況。
比如:
輸入1,就會輸出星期一
輸入2,就會輸出星期二
…
輸入7,就會輸出星期七
對於這樣的代碼需求,如果用if 、else if、else的形式就會顯得太復雜。如何用switch語句實現該功能呢?switch語句的結構又是怎樣的呢?
switch(整型表達式)
{
語句項;
}
其中,整型表達式必須為整型,且為常量(字符也可以,因為字符也屬於是整型的一種,因為字符存儲的時候用的是字符的ASCII碼值);語句項是一些case語句。
case 整型常量表達式;
語句;
代碼實現:
int main() { int day = 0; scanf("%d",&day); switch (day) { case 1: printf("星期一\n"); case 2: printf("星期二\n"); case 3: printf("星期三\n"); case 4: printf("星期四\n"); case 5: printf("星期五\n"); case 6: printf("星期六\n"); case 7: printf("星期日\n"); } return 0; }
運行該代碼,發現運行之後得到的結果如下:
1
星期一
星期二
星期三
星期四
星期五
星期六
星期日
顯然,這樣的結果是不對的。因為執行完case 1 之後,沒有東西阻止它,它就會一直case 2、case 3…地執行下去。若在程序運行的時候,輸入的是6,就會輸出 星期六星期日。switch後面的表達式(day)是幾,它就會從case 幾進去,決定入口的是表達式day的值以及case後面的值。
修改程序:在每個case後面加上break,以此來跳出case。
case決定的是入口,而break決定的是出口,這才實現瞭真正的分支。
2、示例
輸入1-5就輸出工作日,輸入6-7就輸出休息日。
int main() { int day = 0; scanf("%d",&day); switch (day) { case 1: case 2: case 3: case 4: case 5: printf("工作日\n"); break; case 6: case 7: printf("休息日\n"); break; } return 0; }
測試運行結果如下:
5
工作日
break語句的實際效果是把語句列表劃分為不同的部分。
有一個編程好習慣:在最後一個case語句的後面也加上一條break語句。萬一之後要在原先程序的基礎上再加上一些其它case語句,不至於出現上面的輸入1,一下子星期一到星期天全部打印出來的情況。
3、default子句
如果表達的值與所有的case標簽的值都不匹配怎麼辦?其實也沒什麼,結果就是所有的語句都被跳過而已,程序並不會終止,也不會報錯。因為這種情況在C語言中並不認為是錯誤,但是,如果並不想忽略不匹配所有標簽的表達式怎麼辦?這時候就可以在語句列表中增加一句default子句,將其寫在任何一個case標簽可以出現的位置。
當switch表達式的值並不匹配所有case標簽的值時,這個default子句後面的語句就會執行。註意:每個switch語句中隻能出現一條default子句。
int main() { int day = 0; scanf("%d",&day); switch (day) { default: printf("輸入錯誤\n"); break; 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("星期日\n"); break; } return 0; }
測試結果:
9
輸入錯誤
4、練習
看程序運行的結果是多少?
int main() { int n = 1; int m = 2; switch (n) { case 1 : m++; case 2: n++; case 3: switch (n) //switch可以嵌套使用 { case 1: n++; case 2: m++; n++; break; } case 4: m++; break; default: break; } printf("m=%d,n=%d\n",m,n); return 0; }
主要就是考察switch裡面的break的作用。
最終的運行結果如下:
m=5,n=3
到此這篇關於C語言示例講解switch分支語句的用法的文章就介紹到這瞭,更多相關C語言switch分支內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!