C語言switch語句詳解
switch 分支結構

快速入門
案例: 請編寫一個程序,該程序可以接收一個字符,比如: a,b,c,d,e,f,g a 表示星期一,b 表示星期 二 … 根據(jù)用戶的輸入顯 示相依的信息.要求使用 switch 語句完成
代碼演示
案例: 請編寫一個程序,該程序可以接收一個字符,比如: a,b,c,d,e,f,g a 表示星期一,b 表示星期 二 … 根據(jù)用戶的輸入顯 示相依的信息.要求使用 switch 語句完成
#include<stdio.h>
void main(){
char c1 = ' ';
printf("請輸入一個字符(a,b,c,d)");
scanf("%c", &c1); //switch //表達式: 任何有值都可以看成是一個表達式
scanf("%c", &c1);
switch(c1) {
case 'a' : //'a' => 97
printf("今天星期一, 猴子穿新衣");
break; //退出 switch
case 'b' :
printf("今天星期二, 猴子當小二");
break;
case 'c' :
printf("今天星期三, 猴子爬雪山");
break;
case 'd' :
printf("今天星期四, 猴子有急事");
break;
default : //default 是可選擇,不是必須的
printf("沒有匹配到任何值~");
}
printf("\nswitch 結束~");
}
注意:如果switch 缺少默認值,剛好執(zhí)行的時候 值匹配不上任意一個case,會發(fā)生什么?
答:若沒有匹配的case值,也沒有default語句 ,則跳過switch 語句體 ,什么都不做。
switch 細節(jié)討論
1)switch 語句中的 expression 是一個常量表達式,必須是一個整型(char、short, int, long 等) 或枚舉類型
2)case 子句中的值必須是常量,而不能是變量
3)default 子句是可選的,當沒有匹配的 case 時,執(zhí)行 default
4)break 語句用來在執(zhí)行完一個 case 分支后使程序跳出 switch 語句塊;
5)如果沒有寫 break,會執(zhí)行下一個 case 語句塊,直到遇到 break 或者執(zhí)行到 switch 結尾, 這個現(xiàn)象稱為穿透.
switch 和 if 的比較
1)如果判斷的具體數(shù)值不多,而且符合整型 、枚舉類型。雖然兩個語句都可以使用,建議使用 swtich 語句。
2)其他情況:對區(qū)間判斷,對結果為 真假 的判斷,使用 if,if 的使用范圍更廣
案例:
對學生成績大于 60 分的,輸出“合格”。低于 60 分的,輸出“不合格”。(注:輸入的成績不能大于 100)
#include<stdio.h>
void main() {
double d1 = 0.0;
printf("請輸入成績");
scanf("%lf", &d1);
switch( (int)(d1/60) ) {//即 switch() 括號中,可以是一個復雜表達式
case 0 :
printf("不合格");
break;
case 1:
printf("合格");
break;
default :
printf("輸入成績有誤");
}
}
總結
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

