《程序的控制結(jié)構(gòu)》PPT課件.ppt
《《程序的控制結(jié)構(gòu)》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《程序的控制結(jié)構(gòu)》PPT課件.ppt(70頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第三章程序的控制結(jié)構(gòu),★主要內(nèi)容程序語(yǔ)句及三種基本結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu),3.1.1程序語(yǔ)句,3.1程序語(yǔ)句及三種基本結(jié)構(gòu),語(yǔ)句(statement)是程序中最小的可執(zhí)行單位。一條語(yǔ)句可以完成一種基本操作,若干條語(yǔ)句組合在一起就能實(shí)現(xiàn)某種特定的功能。在C程序中,語(yǔ)句可以是以下三種形式之一。,單一語(yǔ)句,2.空語(yǔ)句,3.復(fù)合語(yǔ)句,3.1.2三種基本結(jié)構(gòu),(c)循環(huán)結(jié)構(gòu),假,真,(a)順序結(jié)構(gòu),語(yǔ)句n,語(yǔ)句n+1,語(yǔ)句n+2,,,,,(b)分支結(jié)構(gòu),假,真,(a)順序結(jié)構(gòu),,,,,(b)分支結(jié)構(gòu),條件成立?,,,,,,,,真,假,,,問(wèn)題提出:,根據(jù)學(xué)生的考試成績(jī)判斷是否通過(guò)?,解題的步驟:,C語(yǔ)言提供的選擇結(jié)構(gòu)有三種:if語(yǔ)句、if-else語(yǔ)句、switch語(yǔ)句。,3.2選擇結(jié)構(gòu),3.2.1if語(yǔ)句,語(yǔ)句形式:,if(表達(dá)式){語(yǔ)句};,語(yǔ)句執(zhí)行流程:,if語(yǔ)句:對(duì)所給條件進(jìn)行判定,根據(jù)判定結(jié)果決定是否執(zhí)行程序段。,例3-1:從鍵盤(pán)任意輸入一個(gè)字符,判斷該字符是否是大寫(xiě)英文字母。若是大寫(xiě)字母,則自動(dòng)轉(zhuǎn)換為小寫(xiě)字母;否則,原樣輸出。,#includevoidmain(){charch;scanf("%c",},程序運(yùn)行結(jié)果:輸入:A輸出:a輸入:*輸出:*,例3-2:輸入兩個(gè)整數(shù)a和b,并按從大到小的順序存放。即若a小于b則交換兩個(gè)數(shù)的位置,否則直接輸出a和b。,#includevoidmain(){inta,b,temp;printf("Entera,b:");scanf("%d%d",},說(shuō)明,①在交換兩個(gè)變量的值時(shí),不能用以下語(yǔ)句直接賦值a=b;b=a;②在if語(yǔ)句中,內(nèi)嵌語(yǔ)句既可以是單一語(yǔ)句,也可以是復(fù)合語(yǔ)句。③在程序書(shū)寫(xiě)中使用了縮進(jìn)格式,即if的內(nèi)嵌語(yǔ)句要比if向右縮進(jìn)幾格。,#includevoidmain(){charch;scanf("%c",},思考:將例3-1做如下修改,程序的結(jié)果是?,;,補(bǔ)充:讀程序,理解”==”與”=”的作用及區(qū)別,#includevoidmain(){intm=10;if(m==100)printf(“m==%d”,m);if(m=100)printf(“misassigned%d\n”,m);},程序運(yùn)行結(jié)果:misassigned100,if(表達(dá)式){語(yǔ)句1;}else{語(yǔ)句2;},,表達(dá)式,,語(yǔ)句1,真(非0),,,假(0),,語(yǔ)句2,,,3.2.2if-else語(yǔ)句,if-else語(yǔ)句適合于解決雙分支選擇問(wèn)題,語(yǔ)句形式:,語(yǔ)句執(zhí)行流程:,例3-3:輸入一個(gè)學(xué)生的成績(jī),如高于60分則輸出“pass”,否則,輸出“failed”。,#includevoidmain(){floatscore;printf("Enterscore(0~100):");scanf("%f",},補(bǔ)充:輸入一個(gè)整數(shù),判斷該整數(shù)的奇偶性,#includevoidmain(){intm;printf(“inputm:”);scanf(“%d”,},,輸入m,,m%2==0,偶數(shù),,,結(jié)束,,真,,假,奇數(shù),,,inputm:2525isanoddnumber,inputm:3025isanevennumber,注意:有的if-else語(yǔ)句可以用條件運(yùn)算符(?:)來(lái)實(shí)現(xiàn)。,if(a>b)max=a;elsemax=b;,,max=(a>b)?a:b;,重寫(xiě)例3-1:輸出輸入一個(gè)英文字符,若為大寫(xiě)字母則改為小寫(xiě)字母,然后得到的字符。,#includevoidmain(){charzm;scanf(“%c”,},if(表達(dá)式1)語(yǔ)句1elseif(表達(dá)式2)語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3……elseif(表達(dá)式n)語(yǔ)句nelse語(yǔ)句n+1,3.2.3嵌套的if-else語(yǔ)句,語(yǔ)句形式:,,表達(dá)式1,,語(yǔ)句1,真(非0),假(0),,,,,,語(yǔ)句執(zhí)行流程:,例3-4:輸入學(xué)生成績(jī),并按分?jǐn)?shù)段確定等級(jí)。其中,90分以上為優(yōu),80分以上為良,70分以上為中,60分以上為及格,60分以下為不及格。,說(shuō)明:此題目是一個(gè)多分支結(jié)構(gòu),在處理分支時(shí),既不能有重復(fù),也不能有遺漏。,#includevoidmain(){floatscore;printf("Enterscore(0~100):");scanf("%f",},例3-4:可改寫(xiě)為如下程序:#includevoidmain(){floatscore;printf("Enterscore(0~100):");scanf("%f",},注意:在嵌套的if語(yǔ)言中,含有多個(gè)if和else,else與if之間的配對(duì)關(guān)系就很容易混淆。例如在以下程序中,if(x>y)if(y>z)printf("xisthelargest!");elseprintf("yisthesmallest");其中的else是與第一個(gè)if還是第二個(gè)if配對(duì)呢?,將以上程序改為:if(x>y){if(y>z)printf("xis.......");}elseprintf("yis........");這樣就從語(yǔ)法上將花括號(hào){}中的內(nèi)容說(shuō)明為第一個(gè)if語(yǔ)句的內(nèi)嵌語(yǔ)句,從而使else與較遠(yuǎn)的第一個(gè)if配對(duì)。,例3-5計(jì)算分段函數(shù),,x+1.2(x<0),#includevoidmain(){intx,y;scanf("%f",},語(yǔ)句形式:,switch(表達(dá)式){case常量1:語(yǔ)句1;case常量2:語(yǔ)句2;case常量3:語(yǔ)句3;.......case常量n:語(yǔ)句n;default:語(yǔ)句n+1;},根據(jù)表達(dá)式的不同值,選擇不同的程序分支,又稱開(kāi)關(guān)語(yǔ)句。,數(shù)值型或字符型,常量表達(dá)式的值必須互不相同,否則執(zhí)行時(shí)將出現(xiàn)矛盾,即同一個(gè)開(kāi)關(guān)值,將對(duì)應(yīng)多種執(zhí)行方案。,3.2.4switch語(yǔ)句,語(yǔ)句執(zhí)行流程:,指語(yǔ)句的最后一條是否為break,簡(jiǎn)單語(yǔ)句或復(fù)合語(yǔ)句,case語(yǔ)句出現(xiàn)的次序并不影響執(zhí)行結(jié)果。,例3-6:輸入學(xué)生成績(jī),通過(guò)switch語(yǔ)句按分?jǐn)?shù)段確定等級(jí)。其中,90分以上為優(yōu),80分以上為良,70分以上為中,60分以上為及格,60分以下為不及格。,#includevoidmain(){intscore;printf("Enterscore(0~100):");scanf("%d",}},說(shuō)明:,①switch后的表達(dá)式可以是整型、字符型或枚舉型,但不能是關(guān)系表達(dá)式或邏輯表達(dá)式。case后的常量表達(dá)式類型必須與之匹配,并且每個(gè)case常量表達(dá)式的值必須互不相同,否則會(huì)出現(xiàn)編譯錯(cuò)誤。②每個(gè)case后的語(yǔ)句可以是單一語(yǔ)句或空語(yǔ)句,也可以是多條語(yǔ)句,當(dāng)然也可以是復(fù)合語(yǔ)句。由于case后是順序執(zhí)行的多條語(yǔ)句,因此可以不必寫(xiě)成帶花括號(hào)的復(fù)合語(yǔ)句形式。③switch語(yǔ)句中的break是一個(gè)可選項(xiàng),它的作用是中止與某個(gè)常量有關(guān)的語(yǔ)句段,并使程序跳到switch結(jié)構(gòu)后的下一語(yǔ)句。如果沒(méi)有break語(yǔ)句,則程序?qū)⒗^續(xù)執(zhí)行直到switch的結(jié)尾或遇到一個(gè)break為止。靈活運(yùn)用switch語(yǔ)句的這一特性,可大大簡(jiǎn)化編程設(shè)計(jì)。④default在switch語(yǔ)句中也是一個(gè)可選項(xiàng)。,例3-7:在程序設(shè)計(jì)中常用switch語(yǔ)句來(lái)處理各種鍵盤(pán)命令,例如,菜單選擇等。在屏幕上顯示菜單“1.Open2.Edit3.Save”,并根據(jù)用戶輸入,執(zhí)行相應(yīng)的操作。,#includevoidmain(){charch;printf("1.Open2.Edit3.Save\n");scanf("%c",}},switch的嵌套:switch語(yǔ)句允許嵌套,即switch本身可以作為另一個(gè)層switch語(yǔ)句的一部分,switch(i){case0:switch(j){case0:printf(“i==j”);break;case1:printf(“i- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 程序的控制結(jié)構(gòu) 程序 控制 結(jié)構(gòu) PPT 課件
鏈接地址:http://kudomayuko.com/p-13156381.html