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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

高級語言程序設(shè)計模塊二程序設(shè)計基礎(chǔ)任務(wù)2.3選擇結(jié)構(gòu)的使用C語言程序設(shè)計基礎(chǔ)與實踐課程組04技能點拓展03技能點詳解02技能點分析目錄CONTENTS任務(wù)2.3選擇結(jié)構(gòu)的使用01問題引入05技能點檢測一問題引入

大千世界,茫茫人海。變幻的世界,讓我們在人生的旅途中不斷地選擇,其實,人的一生就是在不斷地選擇。每當(dāng)我們站在人生的十字路口時,交警是我們自己,自己選擇要去的方向。人生綻放光彩,總是在我們做出完美的選擇時。在計算機的世界里,我們需要根據(jù)某些條件來選擇執(zhí)行指定的操作,這就需要選擇結(jié)構(gòu)。04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.3選擇結(jié)構(gòu)的使用二技能點分析1.了解實現(xiàn)選擇結(jié)構(gòu)的兩種語句:if語句和switch語句2.掌握if語句和switch語句的語法3.能夠使用這兩種語句進行選擇結(jié)構(gòu)編程學(xué)習(xí)目標(biāo)1.什么是選擇結(jié)構(gòu)?實現(xiàn)選擇結(jié)構(gòu)的語句有哪些?2.if語句的使用形式有哪些?3.什么情況下使用嵌套if語句?4.switch語句的使用注意事項有哪些?學(xué)期預(yù)習(xí)04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.3選擇結(jié)構(gòu)的使用三技能點詳解選擇結(jié)構(gòu)要求程序員指定一個或多個要評估或測試的條件,以及條件為“真”時要執(zhí)行的語句(必需的)和條件為“假”時要執(zhí)行的語句(可選的)。C語言把任何非零和非空的值假定為“真”,把零或null假定為“假”。下面是大多數(shù)編程語言中典型的選擇語句的流程圖:圖2.3.1選擇語句流程圖三技能點詳解常用選擇語句對應(yīng)關(guān)系,如表2.3.1所示:表2.3.1選擇語句描述對照表三技能點詳解——1

if語句1.if語句一個if語句由一個布爾表達(dá)式后跟一個或多個語句組成。C語言中if語句的語法:如果布爾表達(dá)式為“真”,則if語句內(nèi)的代碼塊將被執(zhí)行。如果布爾表達(dá)式為“假”,則if語句結(jié)束后的第一組代碼將被執(zhí)行。C語言把任何非零和非空的值假定為“真”,把零或null假定為“假”。if語句流程圖如圖2.3.2所示:圖2.3.2if語句流程圖三技能點詳解——2

if...else語句2.if...else語句一個if語句后可跟一個可選的else語句,else語句在布爾表達(dá)式為“假”時執(zhí)行。C語言中if...else語句的語法:三技能點詳解——2

if...else語句如果布爾表達(dá)式為“真”,則執(zhí)行if塊內(nèi)的代碼。如果布爾表達(dá)式為“假”,則執(zhí)行else塊內(nèi)的代碼。C語言把任何非零和非空的值假定為“真”,把零或null假定為“假”。if...else語句流程圖如圖2.3.3所示:圖2.3.3if...else語句流程圖三技能點詳解——3

if...elseif...else3.if...elseif...else語句一個if語句后可跟一個可選的elseif...else語句,這可用于測試多種條件。當(dāng)使用if...elseif...else語句時,以下幾點需要注意:一個if后可跟零個或一個else,else必須在所有elseif之后。一個if后可跟零個或多個elseif,elseif必須在else之前。一旦某個elseif匹配成功,其他的elseif或else將不會被測試。

三技能點詳解——3

if...elseif...elseC語言中的if...elseif...else語句的語法:三技能點詳解——3

if...elseif...elseif...elseif...else語句流程圖如圖2.3.4所示:圖2.3.4if...elseif...else語句流程圖三技能點詳解——4

C嵌套if語句4.C嵌套if語句在C語言中,嵌套if-else語句是合法的,這意味著您可以在一個if或elseif語句內(nèi)使用另一個if或elseif語句。C語言中嵌套if語句的語法:您可以嵌套elseif...else,方式與嵌套if語句相似。嵌套if語句流程圖如圖2.3.5所示:圖2.3.5嵌套if語句流程圖三技能點詳解——5

switch語句5.switch語句一個switch語句允許測試一個變量等于多個值時的情況。每個值稱為一個case,且被測試的變量會對每個case進行檢查。C語言中switch語句的語法:三技能點詳解——5

switch語句switch語句必須遵循下面的規(guī)則:1)switch語句中的表達(dá)式是一個常量表達(dá)式,必須是一個整型或枚舉類型。2)在一個switch中可以有任意數(shù)量的case語句。每個case后跟一個要比較的值和一個冒號。3)case后的常量必須與switch中的變量具有相同的數(shù)據(jù)類型,且必須是一個整數(shù)或字符常量。4)當(dāng)被測試的變量等于case中的常量時,case后跟的語句將被執(zhí)行,直到遇到break語句為止。5)當(dāng)遇到break語句時,switch終止,控制流將跳轉(zhuǎn)到switch語句后的下一行。6)不是每一個case都需要包含break。如果case語句不包含break,控制流將會繼續(xù)后續(xù)的case,直到遇break為止。7)一個switch語句可以有一個可選的defaultcase,出現(xiàn)在switch的結(jié)尾。defaultcase可用于在上面所有case都不為“真”時執(zhí)行一個任務(wù)。defaultcase中的break語句不是必需的。三技能點詳解——5

switch語句switch...case語句流程圖如圖2.3.6所示:圖2.3.6switch...case語句流程圖三技能點詳解——6嵌套switch語句6.嵌套switch語句您可以把一個switch作為一個外部switch的語句序列的一部分,即可以在一個switch語句內(nèi)使用另一個switch語句。即使內(nèi)部和外部switch的case常量包含共同的值,也沒有矛盾。C語言中嵌套switch語句的語法:案例2.3.1if語句在這個案例中,我們要先定義一個整型變量,并對其賦值,然后判斷其值是否小于20,如果是則輸出“a小于20”,再輸出它的值。/****************************************內(nèi)容簡述:判斷輸入的值是否小于20。

***************************************/#include

<stdio.h>

//頭函數(shù)

intmain(void){

inta=10;//變量賦值

if(a<20)//條件判斷 { printf("a小于20\n"); }

printf("a的值是%d\n",a);//輸出變量a

return0;}三技能點詳解——案例案例2.3.2if...else語句在這個案例中,我們要先定義一個整型變量,并對其賦值,然后判斷其值是否小于20,如果是則輸出“a小于20”,否則輸出“a大于20”再輸出它的值。/*********************************內(nèi)容簡述:判斷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;}三技能點詳解——案例案例2.3.3if...elseif...elseif...else語句我們要先定義一個整型變量,并對其賦值,然后判斷其值是否為10,20或者30,并輸出相應(yīng)的結(jié)果,如果都不是則輸出“沒有匹配的值”,最后再輸出它的值。/***************************************內(nèi)容簡述:輸入數(shù)值,與設(shè)定值進行數(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("沒有匹配的值\n");

}printf("a的準(zhǔn)確值是%d\n",a);

return0;}三技能點詳解——案例案例2.3.4嵌套if語句在這個案例中,我們先定義兩個整型變量,并對它們各自賦值,然后先判斷第一個變量的值是否滿足條件,在滿足條件的情況下再去判斷第二個變量的值是否也滿足條件,如果兩個變量的值都滿足條件,則輸出一句話,說明兩個變量的值是多少,最后再輸出這兩個變量的值加以驗證。/***************************************內(nèi)容簡述:判斷兩個條件都滿足時候的條件

***************************************/#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;}三技能點詳解——案例案例2.3.5switch語句我們要根據(jù)某學(xué)生考試所得成績?nèi)ポ敵鱿鄳?yīng)的結(jié)果提示,最后再輸出其成績。三技能點詳解——案例/***************************************************內(nèi)容簡述:根據(jù)某學(xué)生考試所得成績?nèi)ポ敵鱿鄳?yīng)的結(jié)果提示

***************************************************/#include

<stdio.h>

//頭文件

intmain(void){

chargrade='B';//分?jǐn)?shù)等級

switch(grade) {

case'A'://如果是A等級 printf("很棒\n");break;

case'B'://如果是B等級

case'C'://如果是C等級 printf("做得好\n");break;

case'D'://如果是D等級 printf("您通過了\n");break;

case'E'://如果是E等級 printf("最好再試一下\n");break;

default://以上等級都不是 printf("無效的成績\n"); }

printf("您的成績是:%c\n",grade);

return0;}三技能點詳解——案例案例2.3.6嵌套switch語句的應(yīng)用在這個案例中,我們先定義兩個整型變量,并對它們各自賦值,然后先用一個switch...case語句去判斷a的值,在此case分支內(nèi)再去嵌套一個switch...case去判斷b的值,最后再輸出這兩個變量的值加以驗證。三技能點詳解——案例/***************************************************內(nèi)容簡述:根據(jù)某學(xué)生考試所得成績?nèi)ポ敵鱿鄳?yīng)的結(jié)果提示

***************************************************/#include

<stdio.h>

intmain(void){

inta=100;//定義變量值

intb=200;

switch(a)//根據(jù)a的值進行選擇{

case100:printf("a的值是100。\n");

switch(b)//根據(jù)b的值進行選擇 {

case200:printf("a的值是100,且b的值是200。\n");break;

default:printf("沒有找到符合b的值。\n");}

break;

default:printf("沒有找到符合a的值。\n");}

printf("a的準(zhǔn)確值是%d\n",a);printf("b的準(zhǔn)確值是%d\n",b);

return0;}三技能點詳解——案例04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.3選擇結(jié)構(gòu)的使用四技能點拓展——1?:運算符(三元運算符)我們已經(jīng)在前面的章節(jié)中講解了條件運算符?:,可以用來替代if...else語句。它的一般形式如下:Exp1?Exp2:Exp3;其中,Exp1、Exp2和Exp3是表達(dá)式。請注意,冒號的使用和位置。?表達(dá)式的值是由Exp1決定的。如果Exp1為“真”,則計算Exp2的值,結(jié)果即為整個?表達(dá)式的值。如果Exp1為“假”,則計算Exp3的值,結(jié)果即為整個?表達(dá)式的值。其執(zhí)行示意圖如圖2.3.13所示:圖2.3.13三元運算符執(zhí)行示意圖四技能點拓展——1?:運算符(三元運算符)以下實例通過輸入一個數(shù)字來判斷它是否為奇數(shù)或偶數(shù)四技能點拓展——1?:運算符(三元運算符)輸出結(jié)果為:四技能點拓展——2If語句和switch語句的區(qū)別if語句和switch語句可以從使用的效率上來進行區(qū)別,也可以從實用性角度區(qū)分。如果從使用效率上區(qū)分:在對同一個變量在不同值做條件判斷時,可以使用switch語句,也可以使用if語句,使用switch語句的效率更高一些尤其是判斷的分支越多越明顯。如果從語句的實用性的角度去區(qū)分,那switch語句肯定不如if條件語句。if條件語句是應(yīng)用最廣泛和最實用的語句。在程序開發(fā)的過程中,具體如何使用if和switch語句哦,需要根據(jù)實際的情況來定,應(yīng)盡量做到物盡其用,不要因為switch語句的效率高就一味的使用,也不要因為if語句常用就不應(yīng)用switch語句,根據(jù)實際情況,具體問題具體分析,使用最適合的條件語句。一般情況下,對于判斷條件較少的,可以使用if條件語句,但是在實現(xiàn)一些多條件的判斷中,就應(yīng)該使用switch語句。04技能點拓展03技能點詳解02技能點分析目錄CONTENTS01問題引入05技能點檢測任務(wù)2.3選擇結(jié)構(gòu)的使用五技能點檢測1)以下if語句書寫正確的是(

)。A)if(x=0;)B)if(x>0)

printf(“%f”,x);{x=x+1;printf(“%f”,x);}

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論