




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
高級(jí)語(yǔ)言程序設(shè)計(jì)模塊二程序設(shè)計(jì)基礎(chǔ)任務(wù)2.3選擇結(jié)構(gòu)的使用C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與實(shí)踐課程組04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS任務(wù)2.3選擇結(jié)構(gòu)的使用01問(wèn)題引入05技能點(diǎn)檢測(cè)一問(wèn)題引入
大千世界,茫茫人海。變幻的世界,讓我們?cè)谌松穆猛局胁粩嗟剡x擇,其實(shí),人的一生就是在不斷地選擇。每當(dāng)我們站在人生的十字路口時(shí),交警是我們自己,自己選擇要去的方向。人生綻放光彩,總是在我們做出完美的選擇時(shí)。在計(jì)算機(jī)的世界里,我們需要根據(jù)某些條件來(lái)選擇執(zhí)行指定的操作,這就需要選擇結(jié)構(gòu)。04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問(wèn)題引入05技能點(diǎn)檢測(cè)任務(wù)2.3選擇結(jié)構(gòu)的使用二技能點(diǎn)分析1.了解實(shí)現(xiàn)選擇結(jié)構(gòu)的兩種語(yǔ)句:if語(yǔ)句和switch語(yǔ)句2.掌握if語(yǔ)句和switch語(yǔ)句的語(yǔ)法3.能夠使用這兩種語(yǔ)句進(jìn)行選擇結(jié)構(gòu)編程學(xué)習(xí)目標(biāo)1.什么是選擇結(jié)構(gòu)?實(shí)現(xiàn)選擇結(jié)構(gòu)的語(yǔ)句有哪些?2.if語(yǔ)句的使用形式有哪些?3.什么情況下使用嵌套if語(yǔ)句?4.switch語(yǔ)句的使用注意事項(xiàng)有哪些?學(xué)期預(yù)習(xí)04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問(wèn)題引入05技能點(diǎn)檢測(cè)任務(wù)2.3選擇結(jié)構(gòu)的使用三技能點(diǎn)詳解選擇結(jié)構(gòu)要求程序員指定一個(gè)或多個(gè)要評(píng)估或測(cè)試的條件,以及條件為“真”時(shí)要執(zhí)行的語(yǔ)句(必需的)和條件為“假”時(shí)要執(zhí)行的語(yǔ)句(可選的)。C語(yǔ)言把任何非零和非空的值假定為“真”,把零或null假定為“假”。下面是大多數(shù)編程語(yǔ)言中典型的選擇語(yǔ)句的流程圖:圖2.3.1選擇語(yǔ)句流程圖三技能點(diǎn)詳解常用選擇語(yǔ)句對(duì)應(yīng)關(guān)系,如表2.3.1所示:表2.3.1選擇語(yǔ)句描述對(duì)照表三技能點(diǎn)詳解——1
if語(yǔ)句1.if語(yǔ)句一個(gè)if語(yǔ)句由一個(gè)布爾表達(dá)式后跟一個(gè)或多個(gè)語(yǔ)句組成。C語(yǔ)言中if語(yǔ)句的語(yǔ)法:如果布爾表達(dá)式為“真”,則if語(yǔ)句內(nèi)的代碼塊將被執(zhí)行。如果布爾表達(dá)式為“假”,則if語(yǔ)句結(jié)束后的第一組代碼將被執(zhí)行。C語(yǔ)言把任何非零和非空的值假定為“真”,把零或null假定為“假”。if語(yǔ)句流程圖如圖2.3.2所示:圖2.3.2if語(yǔ)句流程圖三技能點(diǎn)詳解——2
if...else語(yǔ)句2.if...else語(yǔ)句一個(gè)if語(yǔ)句后可跟一個(gè)可選的else語(yǔ)句,else語(yǔ)句在布爾表達(dá)式為“假”時(shí)執(zhí)行。C語(yǔ)言中if...else語(yǔ)句的語(yǔ)法:三技能點(diǎn)詳解——2
if...else語(yǔ)句如果布爾表達(dá)式為“真”,則執(zhí)行if塊內(nèi)的代碼。如果布爾表達(dá)式為“假”,則執(zhí)行else塊內(nèi)的代碼。C語(yǔ)言把任何非零和非空的值假定為“真”,把零或null假定為“假”。if...else語(yǔ)句流程圖如圖2.3.3所示:圖2.3.3if...else語(yǔ)句流程圖三技能點(diǎn)詳解——3
if...elseif...else3.if...elseif...else語(yǔ)句一個(gè)if語(yǔ)句后可跟一個(gè)可選的elseif...else語(yǔ)句,這可用于測(cè)試多種條件。當(dāng)使用if...elseif...else語(yǔ)句時(shí),以下幾點(diǎn)需要注意:一個(gè)if后可跟零個(gè)或一個(gè)else,else必須在所有elseif之后。一個(gè)if后可跟零個(gè)或多個(gè)elseif,elseif必須在else之前。一旦某個(gè)elseif匹配成功,其他的elseif或else將不會(huì)被測(cè)試。
三技能點(diǎn)詳解——3
if...elseif...elseC語(yǔ)言中的if...elseif...else語(yǔ)句的語(yǔ)法:三技能點(diǎn)詳解——3
if...elseif...elseif...elseif...else語(yǔ)句流程圖如圖2.3.4所示:圖2.3.4if...elseif...else語(yǔ)句流程圖三技能點(diǎn)詳解——4
C嵌套if語(yǔ)句4.C嵌套if語(yǔ)句在C語(yǔ)言中,嵌套if-else語(yǔ)句是合法的,這意味著您可以在一個(gè)if或elseif語(yǔ)句內(nèi)使用另一個(gè)if或elseif語(yǔ)句。C語(yǔ)言中嵌套if語(yǔ)句的語(yǔ)法:您可以嵌套elseif...else,方式與嵌套if語(yǔ)句相似。嵌套if語(yǔ)句流程圖如圖2.3.5所示:圖2.3.5嵌套if語(yǔ)句流程圖三技能點(diǎn)詳解——5
switch語(yǔ)句5.switch語(yǔ)句一個(gè)switch語(yǔ)句允許測(cè)試一個(gè)變量等于多個(gè)值時(shí)的情況。每個(gè)值稱(chēng)為一個(gè)case,且被測(cè)試的變量會(huì)對(duì)每個(gè)case進(jìn)行檢查。C語(yǔ)言中switch語(yǔ)句的語(yǔ)法:三技能點(diǎn)詳解——5
switch語(yǔ)句switch語(yǔ)句必須遵循下面的規(guī)則:1)switch語(yǔ)句中的表達(dá)式是一個(gè)常量表達(dá)式,必須是一個(gè)整型或枚舉類(lèi)型。2)在一個(gè)switch中可以有任意數(shù)量的case語(yǔ)句。每個(gè)case后跟一個(gè)要比較的值和一個(gè)冒號(hào)。3)case后的常量必須與switch中的變量具有相同的數(shù)據(jù)類(lèi)型,且必須是一個(gè)整數(shù)或字符常量。4)當(dāng)被測(cè)試的變量等于case中的常量時(shí),case后跟的語(yǔ)句將被執(zhí)行,直到遇到break語(yǔ)句為止。5)當(dāng)遇到break語(yǔ)句時(shí),switch終止,控制流將跳轉(zhuǎn)到switch語(yǔ)句后的下一行。6)不是每一個(gè)case都需要包含break。如果case語(yǔ)句不包含break,控制流將會(huì)繼續(xù)后續(xù)的case,直到遇break為止。7)一個(gè)switch語(yǔ)句可以有一個(gè)可選的defaultcase,出現(xiàn)在switch的結(jié)尾。defaultcase可用于在上面所有case都不為“真”時(shí)執(zhí)行一個(gè)任務(wù)。defaultcase中的break語(yǔ)句不是必需的。三技能點(diǎn)詳解——5
switch語(yǔ)句switch...case語(yǔ)句流程圖如圖2.3.6所示:圖2.3.6switch...case語(yǔ)句流程圖三技能點(diǎn)詳解——6嵌套switch語(yǔ)句6.嵌套switch語(yǔ)句您可以把一個(gè)switch作為一個(gè)外部switch的語(yǔ)句序列的一部分,即可以在一個(gè)switch語(yǔ)句內(nèi)使用另一個(gè)switch語(yǔ)句。即使內(nèi)部和外部switch的case常量包含共同的值,也沒(méi)有矛盾。C語(yǔ)言中嵌套switch語(yǔ)句的語(yǔ)法:案例2.3.1if語(yǔ)句在這個(gè)案例中,我們要先定義一個(gè)整型變量,并對(duì)其賦值,然后判斷其值是否小于20,如果是則輸出“a小于20”,再輸出它的值。/****************************************內(nèi)容簡(jiǎn)述:判斷輸入的值是否小于20。
***************************************/#include
<stdio.h>
//頭函數(shù)
intmain(void){
inta=10;//變量賦值
if(a<20)//條件判斷 { printf("a小于20\n"); }
printf("a的值是%d\n",a);//輸出變量a
return0;}三技能點(diǎn)詳解——案例案例2.3.2if...else語(yǔ)句在這個(gè)案例中,我們要先定義一個(gè)整型變量,并對(duì)其賦值,然后判斷其值是否小于20,如果是則輸出“a小于20”,否則輸出“a大于20”再輸出它的值。/*********************************內(nèi)容簡(jiǎn)述:判斷a值的大小。
*********************************/#include
<stdio.h>
//頭文件
intmain(void){
inta=100;//定義a值
if(a<20)//小于20 { printf("a小于20\n"); }
else
//不小于20 { printf("a大于20\n"); }
printf("a的值是%d\n",a);
return0;}三技能點(diǎn)詳解——案例案例2.3.3if...elseif...elseif...else語(yǔ)句我們要先定義一個(gè)整型變量,并對(duì)其賦值,然后判斷其值是否為10,20或者30,并輸出相應(yīng)的結(jié)果,如果都不是則輸出“沒(méi)有匹配的值”,最后再輸出它的值。/***************************************內(nèi)容簡(jiǎn)述:輸入數(shù)值,與設(shè)定值進(jìn)行數(shù)值匹配
***************************************/#include
<stdio.h>intmain(void){
inta=100;//定義變量值
if(a==10)//判斷是否與10相等{printf("a的值是10\n");}
else
if(a==20)//判斷是否與20相等{printf("a的值是20\n");}
else
if(a==30)//判斷是否與30相等{printf("a的值是30\n");}
else
//以上都不匹配{printf("沒(méi)有匹配的值\n");
}printf("a的準(zhǔn)確值是%d\n",a);
return0;}三技能點(diǎn)詳解——案例案例2.3.4嵌套if語(yǔ)句在這個(gè)案例中,我們先定義兩個(gè)整型變量,并對(duì)它們各自賦值,然后先判斷第一個(gè)變量的值是否滿足條件,在滿足條件的情況下再去判斷第二個(gè)變量的值是否也滿足條件,如果兩個(gè)變量的值都滿足條件,則輸出一句話,說(shuō)明兩個(gè)變量的值是多少,最后再輸出這兩個(gè)變量的值加以驗(yàn)證。/***************************************內(nèi)容簡(jiǎn)述:判斷兩個(gè)條件都滿足時(shí)候的條件
***************************************/#include
<stdio.h>
//頭文件
intmain(void){
inta=100;//定義變量值
intb=200;
if(a==100)//條件1滿足 {
if(b==200)//條件2滿足 { printf("a的值是100且b的值是200\n"); } }
printf("a的準(zhǔn)確值是%d\n",a); printf("b的準(zhǔn)確值是%d\n",b);
return0;}三技能點(diǎn)詳解——案例案例2.3.5switch語(yǔ)句我們要根據(jù)某學(xué)生考試所得成績(jī)?nèi)ポ敵鱿鄳?yīng)的結(jié)果提示,最后再輸出其成績(jī)。三技能點(diǎn)詳解——案例/***************************************************內(nèi)容簡(jiǎn)述:根據(jù)某學(xué)生考試所得成績(jī)?nèi)ポ敵鱿鄳?yīng)的結(jié)果提示
***************************************************/#include
<stdio.h>
//頭文件
intmain(void){
chargrade='B';//分?jǐn)?shù)等級(jí)
switch(grade) {
case'A'://如果是A等級(jí) printf("很棒\n");break;
case'B'://如果是B等級(jí)
case'C'://如果是C等級(jí) printf("做得好\n");break;
case'D'://如果是D等級(jí) printf("您通過(guò)了\n");break;
case'E'://如果是E等級(jí) printf("最好再試一下\n");break;
default://以上等級(jí)都不是 printf("無(wú)效的成績(jī)\n"); }
printf("您的成績(jī)是:%c\n",grade);
return0;}三技能點(diǎn)詳解——案例案例2.3.6嵌套switch語(yǔ)句的應(yīng)用在這個(gè)案例中,我們先定義兩個(gè)整型變量,并對(duì)它們各自賦值,然后先用一個(gè)switch...case語(yǔ)句去判斷a的值,在此case分支內(nèi)再去嵌套一個(gè)switch...case去判斷b的值,最后再輸出這兩個(gè)變量的值加以驗(yàn)證。三技能點(diǎn)詳解——案例/***************************************************內(nèi)容簡(jiǎn)述:根據(jù)某學(xué)生考試所得成績(jī)?nèi)ポ敵鱿鄳?yīng)的結(jié)果提示
***************************************************/#include
<stdio.h>
intmain(void){
inta=100;//定義變量值
intb=200;
switch(a)//根據(jù)a的值進(jìn)行選擇{
case100:printf("a的值是100。\n");
switch(b)//根據(jù)b的值進(jìn)行選擇 {
case200:printf("a的值是100,且b的值是200。\n");break;
default:printf("沒(méi)有找到符合b的值。\n");}
break;
default:printf("沒(méi)有找到符合a的值。\n");}
printf("a的準(zhǔn)確值是%d\n",a);printf("b的準(zhǔn)確值是%d\n",b);
return0;}三技能點(diǎn)詳解——案例04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問(wèn)題引入05技能點(diǎn)檢測(cè)任務(wù)2.3選擇結(jié)構(gòu)的使用四技能點(diǎn)拓展——1?:運(yùn)算符(三元運(yùn)算符)我們已經(jīng)在前面的章節(jié)中講解了條件運(yùn)算符?:,可以用來(lái)替代if...else語(yǔ)句。它的一般形式如下:Exp1?Exp2:Exp3;其中,Exp1、Exp2和Exp3是表達(dá)式。請(qǐng)注意,冒號(hào)的使用和位置。?表達(dá)式的值是由Exp1決定的。如果Exp1為“真”,則計(jì)算Exp2的值,結(jié)果即為整個(gè)?表達(dá)式的值。如果Exp1為“假”,則計(jì)算Exp3的值,結(jié)果即為整個(gè)?表達(dá)式的值。其執(zhí)行示意圖如圖2.3.13所示:圖2.3.13三元運(yùn)算符執(zhí)行示意圖四技能點(diǎn)拓展——1?:運(yùn)算符(三元運(yùn)算符)以下實(shí)例通過(guò)輸入一個(gè)數(shù)字來(lái)判斷它是否為奇數(shù)或偶數(shù)四技能點(diǎn)拓展——1?:運(yùn)算符(三元運(yùn)算符)輸出結(jié)果為:四技能點(diǎn)拓展——2If語(yǔ)句和switch語(yǔ)句的區(qū)別if語(yǔ)句和switch語(yǔ)句可以從使用的效率上來(lái)進(jìn)行區(qū)別,也可以從實(shí)用性角度區(qū)分。如果從使用效率上區(qū)分:在對(duì)同一個(gè)變量在不同值做條件判斷時(shí),可以使用switch語(yǔ)句,也可以使用if語(yǔ)句,使用switch語(yǔ)句的效率更高一些尤其是判斷的分支越多越明顯。如果從語(yǔ)句的實(shí)用性的角度去區(qū)分,那switch語(yǔ)句肯定不如if條件語(yǔ)句。if條件語(yǔ)句是應(yīng)用最廣泛和最實(shí)用的語(yǔ)句。在程序開(kāi)發(fā)的過(guò)程中,具體如何使用if和switch語(yǔ)句哦,需要根據(jù)實(shí)際的情況來(lái)定,應(yīng)盡量做到物盡其用,不要因?yàn)閟witch語(yǔ)句的效率高就一味的使用,也不要因?yàn)閕f語(yǔ)句常用就不應(yīng)用switch語(yǔ)句,根據(jù)實(shí)際情況,具體問(wèn)題具體分析,使用最適合的條件語(yǔ)句。一般情況下,對(duì)于判斷條件較少的,可以使用if條件語(yǔ)句,但是在實(shí)現(xiàn)一些多條件的判斷中,就應(yīng)該使用switch語(yǔ)句。04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問(wèn)題引入05技能點(diǎn)檢測(cè)任務(wù)2.3選擇結(jié)構(gòu)的使用五技能點(diǎn)檢測(cè)1)以下if語(yǔ)句書(shū)寫(xiě)正確的是(
)。A)if(x=0;)B)if(x>0)
printf(“%f”,x);{x=x+1;printf(“%f”,x);}
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同兩人合伙協(xié)議書(shū)
- 2025年眼科藥物項(xiàng)目可行性研究報(bào)告及運(yùn)營(yíng)方案
- 牛衣原體病及其綜合防控技術(shù)
- 【課件】總體取值規(guī)律的估計(jì)(第1課時(shí)+頻率分布直方圖)課件-高一下學(xué)期數(shù)學(xué)人教A版(2019)必修第二冊(cè)
- 2022賣(mài)車(chē)合同協(xié)議書(shū)
- 2025年純電動(dòng)汽車(chē)項(xiàng)目投資分析及可行性報(bào)告
- 前臺(tái)收銀合同協(xié)議書(shū)模板
- 2025秋五年級(jí)語(yǔ)文上冊(cè)統(tǒng)編版-【9 獵人海力布】交互課件
- 飯店解除合作合同協(xié)議書(shū)
- 模具開(kāi)發(fā)合同協(xié)議書(shū)范本
- 師帶徒培養(yǎng)方案范文
- 山東萊陽(yáng)核電項(xiàng)目一期工程水土保持方案
- 臨床醫(yī)學(xué)概論課程的婦產(chǎn)科學(xué)與生殖醫(yī)學(xué)
- 2024年中國(guó)鐵路物資西安有限公司招聘筆試參考題庫(kù)含答案解析
- PDCA降低護(hù)士針刺傷發(fā)生率
- 幼兒園大班美術(shù)《臉部彩繪》
- 2021年安全生產(chǎn)月:安全執(zhí)行力培養(yǎng)專(zhuān)題培訓(xùn)課件
- 陜西碑刻總目提要編纂凡例
- GB/T 3785.1-2023電聲學(xué)聲級(jí)計(jì)第1部分:規(guī)范
- gds系統(tǒng)應(yīng)急預(yù)案
- 國(guó)家開(kāi)放大學(xué)《農(nóng)村政策法規(guī)》形成性考核1(平時(shí)作業(yè))參考答案
評(píng)論
0/150
提交評(píng)論