C語(yǔ)言程序設(shè)計(jì) 課件 任務(wù)2.3 選擇結(jié)構(gòu)的使用_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì) 課件 任務(wù)2.3 選擇結(jié)構(gòu)的使用_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì) 課件 任務(wù)2.3 選擇結(jié)構(gòu)的使用_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì) 課件 任務(wù)2.3 選擇結(jié)構(gòu)的使用_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì) 課件 任務(wù)2.3 選擇結(jié)構(gòu)的使用_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論