




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第C語言switch語句和if用法介紹目錄switch語句switch和if的區(qū)別1.switch語句結(jié)構(gòu)示意圖2.if語句結(jié)構(gòu)示意圖switch的高級(靈活)運(yùn)用switch的嵌套實(shí)現(xiàn)循環(huán)及循環(huán)的兩個(gè)關(guān)鍵字什么是循環(huán)結(jié)構(gòu)break關(guān)鍵字continue關(guān)鍵字
switch語句
我們先了解switch是什么,翻譯過來的中文意思是開關(guān),在C語言中是指選擇不同的開關(guān)即不同的分支來完成語句。接下來講一下switch的結(jié)構(gòu)和基本使用。
一般的switch語句的結(jié)構(gòu)
switch(n){
case1:
break;
case2:
break;
case3:
break;
default:
break;
}//當(dāng)然我們一般也喜歡用{}來包括case后面得語句和break
即case常量/表達(dá)式:{
break;
}
switch語句是從case進(jìn),break出,case后面只能跟常量或者常量表達(dá)式,n是一個(gè)變量,與if不同的是,if是判斷表達(dá)值是真或假,而switch判斷的是變量中儲存的值具體是多少,然后根據(jù)這個(gè)值尋找對應(yīng)的case,當(dāng)所有的case均無法進(jìn)入時(shí)會進(jìn)入default這個(gè)最后的入口。switch的使用情況一般就是菜單使用和成績表等的等級劃分等。菜單使用相信大家能夠理解,n為不同的值的時(shí)候我們會進(jìn)行不同的操作,那么成績表的等級劃分是什么情況呢?
如果你要把九十分以上的人認(rèn)作是優(yōu)秀,八十分以上定義成良好
七十分以上為,中等六十以上不及格,六十以下不及格
你該怎么設(shè)計(jì)程序根據(jù)一個(gè)人的分?jǐn)?shù)打印他的等級呢?
或許你會選擇這樣的一串代碼
if(n=90)
printf("優(yōu)秀");
elseif(n=80)
printf("良好");
elseif(n=70)
printf("中等");
elseif(n=60)
printf("及格");
printf("不及格");
這個(gè)代碼可以清晰的表示你的意思,這樣分支代碼會有點(diǎn)搓
而switch十分適合這種,這個(gè)時(shí)候肯定會有朋友們疑惑,
case后面只能跟一個(gè)具體的常量,不能跟一個(gè)范圍,那么一個(gè)一個(gè)
的寫case100
case99
case98
case0
但并不是這樣實(shí)現(xiàn)的,一般就行等級規(guī)劃的時(shí)候都是有一個(gè)共同的特點(diǎn)
我們既可以根據(jù)這個(gè)特點(diǎn)來設(shè)計(jì)switch
switch(n/10){
case10:
case9:
case8:
case7:
case6:
default:
}//具體的代碼實(shí)現(xiàn)就寫到這,主要是分享思路
switch和if的區(qū)別
前面只是淺談了switch,接下來看兩張圖片幫助你深入了解switch,并認(rèn)清switch和if的區(qū)別
1.switch語句結(jié)構(gòu)示意圖
第一次畫圖,可能畫的有點(diǎn)難看,希望見諒
2.if語句結(jié)構(gòu)示意圖
看完這兩張圖后,我們來深入了解switch
1.與其說switch是分支結(jié)構(gòu),不如說它是順序結(jié)構(gòu)。
雖然說switch是從不同的case進(jìn)入整個(gè)switch內(nèi)部的,但是我們要知道,switch從case進(jìn)入以后只有兩種到達(dá)出口的方式,遇到break和switch語句全部結(jié)束,根據(jù)結(jié)構(gòu)圖也可以知道其實(shí)switch的不同語句塊之間其實(shí)是從上往下排列的,與順序結(jié)構(gòu)是類似的。
2.if和switch結(jié)構(gòu)上的區(qū)別
根據(jù)兩張圖我們可以清晰的發(fā)現(xiàn),switch的結(jié)構(gòu)類似順序結(jié)構(gòu),而if是互相并列的分支結(jié)構(gòu),if最多只會執(zhí)行其中第一個(gè)判斷為真的語句塊,而switch在沒有break傳送門情況下會一直運(yùn)行進(jìn)入入口后的語句塊直到找到了出口。
3.if和switch共同的分支結(jié)構(gòu)
switch既然屬于分支語句,那么就一定存在分支的地方。switch的case語句是分支的,即入口是分支的,這一點(diǎn)和if是一致的,他們的入口都是分支的,并且都是在程序運(yùn)行時(shí)是從上往下逐步判斷是否可以這個(gè)入口進(jìn)入語句塊內(nèi)部。
switch的高級(靈活)運(yùn)用
了解了switch的具體結(jié)構(gòu)及其與if的區(qū)別,接下來講一下如何靈活的運(yùn)用switch,或者在試題中如何
分析答案
高級的switch使用,其實(shí)就兩個(gè)要點(diǎn),靈活利用break和合理對case進(jìn)行適當(dāng)?shù)呐判?/p>
比如剛剛的成績劃分程序,100分和九十多分是一樣的,我們可以進(jìn)行這樣的簡化
case10:
case9:
printf("優(yōu)秀");
break;
其實(shí)這種情況非常的簡單,大家實(shí)際遇到或者運(yùn)用的時(shí)候或許會復(fù)雜很多
但是只要找到程序的特點(diǎn),并且記住switch的結(jié)構(gòu)以及牢記到達(dá)出口的條件,
大家就可以很輕松的分析程序,并且在慢慢的積累中熟練的掌握。
switch的嵌套實(shí)現(xiàn)
switch同樣也可以嵌套,看著或許復(fù)雜,但在培養(yǎng)了一定的程序的思維之后并不難理解,接下來用這個(gè)代碼來幫助大家簡單的理解switch的嵌套使用。
這段代碼可用于判斷科舉時(shí)進(jìn)士的前三甲
#includestdio.h
intmain(){
intn;//存放名次,并用于判斷
printf("請告訴我你的排名:");
scanf("%d",
switch(n/30){
case0://n/30等于0,即前三十名,進(jìn)入下一層switch
switch(n){
case1:
printf("狀元");//第一名狀元
break;
case2:
printf("榜眼");//第二名榜眼
break;
case3:
printf("探花");//第三名探花
break;
default:
printf("進(jìn)士及第");//其余是進(jìn)士及第
break;
case1://n/30等于1為30-59名
switch(n){//進(jìn)入下一層switch,30進(jìn)士及第,其余同進(jìn)士及第
case30:
printf("進(jìn)士及第");
break;
default:
printf("同進(jìn)士及第");
break;
case2://60-89名,進(jìn)入下一層switch
switch(n){//60名為最后一位進(jìn)士,其余全部落榜
case60:
printf("同進(jìn)士及第");
break;
default:
printf("很遺憾你落榜了");
break;
default:
printf("很遺憾你落榜了");
return0;
default因?yàn)槭亲詈蟮娜肟?,所以可以省略break
但在還未靈活使用break和case時(shí)建議不要省略break
循環(huán)及循環(huán)的兩個(gè)關(guān)鍵字
什么是循環(huán)結(jié)構(gòu)
循環(huán)簡單來說就是,重復(fù)反復(fù)的進(jìn)行一些同樣的操作,這個(gè)時(shí)候?yàn)榱斯?jié)省代碼量,提高代碼的美觀性時(shí),我們會用循環(huán)語句來包裝那些重復(fù)的語句,而循環(huán)語句中不斷執(zhí)行的語句被稱為循環(huán)體。
下面大家可以根據(jù)這個(gè)簡單的圖來理解循環(huán)
這只是其中的一種循環(huán),為了達(dá)到美好的生活,我們不停的學(xué)習(xí),敲代碼,買彩票,直到拿到工作或者彩票中大獎(jiǎng),希望大家看完之后能簡單理解循環(huán)。
break關(guān)鍵字
在switch中,break是一個(gè)傳送門,直接帶我們走到出口,在循環(huán)中也是同樣的,break會打破最近的一層循環(huán),作為一個(gè)傳送門帶我們達(dá)到美好新生活而不需要判斷是否中獎(jiǎng)或者是否有offer
continue關(guān)鍵字
continue在循環(huán)中的作用是結(jié)束這次循環(huán)開始下一次循環(huán),我更喜歡稱它為閃現(xiàn),那什么叫結(jié)束本次循環(huán)呢,比如我們在學(xué)習(xí)后加上一個(gè)continue,我們就不需要再敲代碼和買彩票了,但和break不同,它還需要進(jìn)行下一次循環(huán),走出循環(huán)的條件只有兩個(gè)就是不符合判定循環(huán)條件和bre
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安徽省南陵縣聯(lián)考2025屆七年級生物第二學(xué)期期末質(zhì)量檢測模擬試題含解析
- 湖南張家界五道水鎮(zhèn)中學(xué)2025屆七下生物期末達(dá)標(biāo)檢測試題含解析
- 江蘇省鎮(zhèn)江市丹徒區(qū)江心實(shí)驗(yàn)學(xué)校2025屆生物七下期末質(zhì)量跟蹤監(jiān)視試題含解析
- 2025年上海東海海洋工程勘察設(shè)計(jì)研究院有限公司招聘筆試參考題庫含答案解析
- 2025年云南文山州麻栗坡縣糧食儲備有限責(zé)任公司招聘筆試參考題庫含答案解析
- 2025年浙江蕭山綠色智造產(chǎn)業(yè)園建設(shè)發(fā)展有限公司招聘筆試參考題庫含答案解析
- 2025年廣西來賓市忻城青云礦業(yè)控股集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 2025年湖南永州市道縣蓮城發(fā)展集團(tuán)有限責(zé)任公司招聘筆試參考題庫含答案解析
- 2025年廣東江海區(qū)銀信資產(chǎn)管理有限公司招聘筆試參考題庫附帶答案詳解
- 安全控制論課件
- 古生物基礎(chǔ)知識
- 2025年上海市16區(qū)初三語文一模試題匯編之古詩文閱讀(學(xué)生版)
- (2025)發(fā)展對象培訓(xùn)班考試試題及參考答案
- 2025年鄭州鐵路局招聘筆試參考題庫含答案解析
- 2025年國家衛(wèi)生健康委統(tǒng)計(jì)信息中心招聘1人管理單位筆試遴選500模擬題附帶答案詳解
- 2025年高考語文全國新高考Ⅰ卷作文解析及范文
- 基于質(zhì)譜技術(shù)的細(xì)胞成像研究
- 市場調(diào)查預(yù)測題庫+答案
- 2024年智能地鎖安裝與維護(hù)協(xié)議2篇
- 吉林省安全員-C證考試(專職安全員)題庫及答案
- 2024河北高考地理真題卷解析 課件
評論
0/150
提交評論