C語言switch語句詳解
switch 分支結(jié)構(gòu)
快速入門
案例: 請(qǐng)編寫一個(gè)程序,該程序可以接收一個(gè)字符,比如: a,b,c,d,e,f,g a 表示星期一,b 表示星期 二 … 根據(jù)用戶的輸入顯 示相依的信息.要求使用 switch 語句完成
代碼演示
案例: 請(qǐng)編寫一個(gè)程序,該程序可以接收一個(gè)字符,比如: a,b,c,d,e,f,g a 表示星期一,b 表示星期 二 … 根據(jù)用戶的輸入顯 示相依的信息.要求使用 switch 語句完成
#include<stdio.h> void main(){ char c1 = ' '; printf("請(qǐng)輸入一個(gè)字符(a,b,c,d)"); scanf("%c", &c1); //switch //表達(dá)式: 任何有值都可以看成是一個(gè)表達(dá)式 scanf("%c", &c1); switch(c1) { case 'a' : //'a' => 97 printf("今天星期一, 猴子穿新衣"); break; //退出 switch case 'b' : printf("今天星期二, 猴子當(dāng)小二"); break; case 'c' : printf("今天星期三, 猴子爬雪山"); break; case 'd' : printf("今天星期四, 猴子有急事"); break; default : //default 是可選擇,不是必須的 printf("沒有匹配到任何值~"); } printf("\nswitch 結(jié)束~"); }
注意:如果switch 缺少默認(rèn)值,剛好執(zhí)行的時(shí)候 值匹配不上任意一個(gè)case,會(huì)發(fā)生什么?
答:若沒有匹配的case值,也沒有default語句 ,則跳過switch 語句體 ,什么都不做。
switch 細(xì)節(jié)討論
1)switch 語句中的 expression 是一個(gè)常量表達(dá)式,必須是一個(gè)整型(char、short, int, long 等) 或枚舉類型
2)case 子句中的值必須是常量,而不能是變量
3)default 子句是可選的,當(dāng)沒有匹配的 case 時(shí),執(zhí)行 default
4)break 語句用來在執(zhí)行完一個(gè) case 分支后使程序跳出 switch 語句塊;
5)如果沒有寫 break,會(huì)執(zhí)行下一個(gè) case 語句塊,直到遇到 break 或者執(zhí)行到 switch 結(jié)尾, 這個(gè)現(xiàn)象稱為穿透.
switch 和 if 的比較
1)如果判斷的具體數(shù)值不多,而且符合整型 、枚舉類型。雖然兩個(gè)語句都可以使用,建議使用 swtich 語句。
2)其他情況:對(duì)區(qū)間判斷,對(duì)結(jié)果為 真假 的判斷,使用 if,if 的使用范圍更廣
案例:
對(duì)學(xué)生成績(jī)大于 60 分的,輸出“合格”。低于 60 分的,輸出“不合格”。(注:輸入的成績(jī)不能大于 100)
#include<stdio.h> void main() { double d1 = 0.0; printf("請(qǐng)輸入成績(jī)"); scanf("%lf", &d1); switch( (int)(d1/60) ) {//即 switch() 括號(hào)中,可以是一個(gè)復(fù)雜表達(dá)式 case 0 : printf("不合格"); break; case 1: printf("合格"); break; default : printf("輸入成績(jī)有誤"); } }
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C++ 多線程編程建議之 C++ 對(duì)多線程/并發(fā)的支持(下)
這篇文章主要介紹的是 C++ 多線程編程建議之 C++ 對(duì)多線程/并發(fā)的支持的相關(guān)資料,承接前文 現(xiàn)代 C++ 對(duì)多線程/并發(fā)的支持,接下來我們看看回發(fā)生什么吧2021-10-10C++實(shí)現(xiàn)英文句子中的單詞逆序輸出的方法
這篇文章主要介紹了C++實(shí)現(xiàn)英文句子中的單詞逆序輸出的方法,涉及C++字符串遍歷、分割、截取、輸出等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01淺談使用C++多級(jí)指針存儲(chǔ)海量qq號(hào)和密碼
這篇文章主要介紹了淺談使用C++多級(jí)指針存儲(chǔ)海量qq號(hào)和密碼,分享了相關(guān)實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Qt 使用QDialog實(shí)現(xiàn)界面遮罩的示例(蒙版)
界面遮罩在很多時(shí)候都可以用到,例如彈窗,本文主要介紹了Qt 使用QDialog實(shí)現(xiàn)界面遮罩的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04C/C++?Qt?TreeWidget?單層樹形組件應(yīng)用小結(jié)
TreeWidget?目錄樹組件,該組件適用于創(chuàng)建和管理目錄樹結(jié)構(gòu),在開發(fā)中我們經(jīng)常會(huì)把它當(dāng)作一個(gè)升級(jí)版的ListView組件使用,本文將通過TreeWidget實(shí)現(xiàn)多字段顯示,并增加一個(gè)自定義菜單,通過在指定記錄上右鍵可彈出該菜單并對(duì)指定記錄進(jìn)行操作2021-11-11C++數(shù)位DP復(fù)雜度統(tǒng)計(jì)數(shù)字問題示例詳解
這篇文章主要為大家介紹了利用C++數(shù)位DP的復(fù)雜度來統(tǒng)計(jì)數(shù)字問題的示例實(shí)現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升值加薪2021-11-11