嵌入式C編程02流程控制_第1頁(yè)
嵌入式C編程02流程控制_第2頁(yè)
嵌入式C編程02流程控制_第3頁(yè)
嵌入式C編程02流程控制_第4頁(yè)
嵌入式C編程02流程控制_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

流程控制課程安排什么是流程控制順序流程結(jié)構(gòu)分支流程結(jié)構(gòu)循環(huán)流程結(jié)構(gòu)回顧什么是程序? 程序員將解決某個(gè)工程問題的想法通過編程語(yǔ)言組織成程序如果組織程序?程序=數(shù)據(jù)(組合)+語(yǔ)句(組合)

回顧有哪些基本數(shù)據(jù)類型?回顧什么是語(yǔ)句?

表達(dá)式加分號(hào)構(gòu)成語(yǔ)句。語(yǔ)句就是計(jì)算機(jī)的行為動(dòng)作!從回顧開始想象一下自己參加這個(gè)培訓(xùn)班的日子將會(huì)怎樣度過?溫習(xí)上次課程;預(yù)習(xí)下次課程;如果上課日子到來;到學(xué)校上課;如此循環(huán),直到培訓(xùn)班課程結(jié)束!這里存在幾種動(dòng)作過程(流程)?生活中的動(dòng)作過程(流程)順序流程

分支流程循環(huán)流程流程分類ABAB流程圖N-S圖PAB真假PBA真假PA假真當(dāng)P為真A1966年,Boehm和Jacopini

證明了程序設(shè)計(jì)語(yǔ)言僅僅使用順序、選擇和循環(huán)三種基本控制結(jié)構(gòu)就足以表達(dá)出各種其他的形式結(jié)構(gòu)。所以,利用順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)或者這些結(jié)構(gòu)的組合就可以讓計(jì)算機(jī)處理任何工程問題了程序語(yǔ)言基本控制結(jié)構(gòu)課程安排什么是流程控制順序流程結(jié)構(gòu)分支流程結(jié)構(gòu)循環(huán)流程結(jié)構(gòu)順序流程結(jié)構(gòu)從控制臺(tái)輸入一個(gè)字符,輸出該字符的ASCII編碼實(shí)例課程安排什么是流程控制順序流程結(jié)構(gòu)分支流程結(jié)構(gòu)循環(huán)流程結(jié)構(gòu)分支流程結(jié)構(gòu)判斷語(yǔ)句:有么為真,要么為假!沒有第三種情況!語(yǔ)法結(jié)構(gòu)

if(比較/邏輯表達(dá)式) {

語(yǔ)句一; 語(yǔ)句二;

…… }if…語(yǔ)句判斷整數(shù)是否大于0、小于0、等于0、不等于0判斷整數(shù)是否在某個(gè)范圍之內(nèi)輸入字符,判斷如果是小寫字母,則輸出該字母輸入字符,判斷如果是字母,則輸出該字母實(shí)例語(yǔ)法結(jié)構(gòu)

if(比較/邏輯表達(dá)式) {

語(yǔ)句一; 語(yǔ)句二;

…… }else {

語(yǔ)句三; 語(yǔ)句四;

…… }if…else語(yǔ)句輸入字符,判斷如果是字母,則輸出該字母;否則提示輸入非字母實(shí)例語(yǔ)法結(jié)構(gòu)

if(比較/邏輯表達(dá)式) {

語(yǔ)句一; 語(yǔ)句二;

…… }elseif(比較/邏輯表達(dá)式) {

語(yǔ)句三; 語(yǔ)句四;

…… }……if…elseif語(yǔ)句

if(比較/邏輯表達(dá)式) {

語(yǔ)句一; 語(yǔ)句二;

…… }elseif(比較/邏輯表達(dá)式) {

語(yǔ)句三; 語(yǔ)句四;

…… }…… else {

語(yǔ)句五; 語(yǔ)句六;

…… }輸入字符,判斷如果是小寫字母,顯示對(duì)應(yīng)大寫字母;如果是大寫字母,顯示對(duì)應(yīng)小寫字母輸入字符,判斷如果是小寫字母,顯示對(duì)應(yīng)大寫字母;否則如果是大寫字母,顯示對(duì)應(yīng)小寫字母輸入字符,判斷如果是小寫字母,顯示對(duì)應(yīng)大寫字母;否則如果是大寫字母,顯示對(duì)應(yīng)小寫字母;否則顯示輸入非字母輸入字符,判斷如果是小寫字母,顯示對(duì)應(yīng)大寫字母;否則如果是大寫字母,顯示對(duì)應(yīng)小寫字母;否則如果是數(shù)字,顯示該數(shù)字值;實(shí)例if分支結(jié)構(gòu)支持分支嵌套,嵌套使用時(shí)要注意if~else的配對(duì)

If使用注意!例:if(a==b) if(b==c)printf("a==b==c");elseprintf("a!=b");修改后:if(a==b){ if(b==c) {printf("a==b==c"); } }else { printf("a!=b"); }加{}配對(duì),配對(duì)的if-else格式要一致,增強(qiáng)可讀性語(yǔ)法結(jié)構(gòu)

switch語(yǔ)句用于多分支選擇例如:根據(jù)控制臺(tái)輸入的字符1~7,顯示星期

swich(ch)case‘1’: printf(“星期一\n”); break; ……default: printf(“輸入非法”); break;switch應(yīng)用實(shí)例漏掉某個(gè)break會(huì)怎么樣?

case命中后會(huì)一直執(zhí)行,直到遇到第一個(gè)break才結(jié)束switchswitch應(yīng)用注意!條件表達(dá)式一般形式:expr1expr2:expr3執(zhí)行過程功能:相當(dāng)于條件語(yǔ)句,但具有返回值實(shí)例:inta=20,b=10;printf(“maxis%d\n”,a>ba:b);expr1取expr2值取expr3值非0=0實(shí)驗(yàn)2-4:分支流程控制

1、將學(xué)生分?jǐn)?shù)按標(biāo)準(zhǔn)分為優(yōu)、良、中、差四個(gè)級(jí)別; 2、switch實(shí)現(xiàn)從控制臺(tái)獲得一個(gè)字符輸入,如果輸入為m,顯示”goodmoning”;如果輸入為a,顯示”goodafternoon”;如果輸入為n,顯示”goodnight”;其他字符則顯示“donothing”;3、實(shí)現(xiàn)猜拳游戲:模擬兩個(gè)玩家出拳(石頭、剪刀、布),判斷勝、平、負(fù)。上機(jī)實(shí)驗(yàn)課程安排什么是流程控制順序流程結(jié)構(gòu)分支流程結(jié)構(gòu)循環(huán)流程結(jié)構(gòu)循環(huán)流程結(jié)構(gòu)C語(yǔ)言可實(shí)現(xiàn)循環(huán)的語(yǔ)句:1、while語(yǔ)句2、do~while語(yǔ)句3、for語(yǔ)句4、用goto和if構(gòu)成循環(huán)(永遠(yuǎn)不要使用)循環(huán)語(yǔ)句種類語(yǔ)法結(jié)構(gòu):while(表達(dá)式)

循環(huán)體語(yǔ)句;執(zhí)行流程:expr循環(huán)體假(0)真(非0)whilewhile語(yǔ)句while實(shí)例1、循環(huán)打印數(shù)值1~1002、計(jì)算1~100的累加值:語(yǔ)法結(jié)構(gòu):do

循環(huán)體語(yǔ)句;

while(表達(dá)式);執(zhí)行流程:do循環(huán)體expr假(0)真(非0)whiledo~while語(yǔ)句特點(diǎn):至少執(zhí)行一次循環(huán)體do~while實(shí)例1、循環(huán)打印數(shù)值1~1002、計(jì)算1~100的累加值:while循環(huán)使用注意1、死循環(huán) while(1){

語(yǔ)句; }2、while(0)與dowhile(0)在做什么?3、break退出循環(huán)

while(1) {if(表達(dá)式) break;

語(yǔ)句; } do{

語(yǔ)句; }while(1);

do {if(表達(dá)式) break;

語(yǔ)句; }while(1)語(yǔ)法結(jié)構(gòu):for([expr1];[expr2];[expr3])

循環(huán)體語(yǔ)句;執(zhí)行流程:expr2循環(huán)體假(0)真(非0)forexpr1expr3for語(yǔ)句特點(diǎn):對(duì)于預(yù)先知道循環(huán)次數(shù)時(shí)通常用forfor實(shí)例1、循環(huán)打印數(shù)值1~1002、計(jì)算1~100的累加值:for循環(huán)使用注意1、死循環(huán) for(;;){

語(yǔ)句; }2、for變體

for(;i<=100;i++)for(;i<=100;)3、break退出循環(huán)

for(;;) {if(表達(dá)式) break;

語(yǔ)句; }

循環(huán)擴(kuò)展話題1、循環(huán)嵌套(1)for(…){ ……for(…){……} …...}(2)while(…){ ……do{ ……}while(…); …….}(3)for(;;){ ……do{ ……}while(…); …… while(…){ ……} …...}內(nèi)循環(huán)外循環(huán)內(nèi)循環(huán)實(shí)例:如何打印4x4個(gè)星號(hào)(*)循環(huán)擴(kuò)展話題1、break與continuebreak:終止并跳出最近一層的結(jié)構(gòu)continue:結(jié)束本次循環(huán),跳過循環(huán)體中尚未執(zhí)行的語(yǔ)句,進(jìn)行下一次是否執(zhí)行循環(huán)體的判斷實(shí)例:從控制臺(tái)輸入整數(shù),求前10個(gè)正整數(shù)的和循環(huán)擴(kuò)展話題3、關(guān)于goto如果要直接退出外層循環(huán)怎么辦?goto+if也能實(shí)現(xiàn)循環(huán)goto的實(shí)際應(yīng)用:統(tǒng)一出口!

goto語(yǔ)句標(biāo)號(hào);

….…..標(biāo)號(hào):語(yǔ)句;循環(huán)擴(kuò)展話題4、關(guān)于循環(huán)效率在多重循環(huán)中,如果有可能,應(yīng)當(dāng)將最長(zhǎng)的循環(huán)放在最內(nèi)層,最短的循環(huán)放在最外層,以減少CPU跨切循環(huán)層的次數(shù)

for(row=0;row<100;row++){for(col=0;col<5;col++){sum=sum+a[row][col];}}for(col=0;col<5;col++){for(row=0;row<100;row++){sum=sum+a[row][col];}}循環(huán)擴(kuò)展話題4、關(guān)于循環(huán)效率提高代碼執(zhí)行效率往往是以減低可讀性為代價(jià)的

/*代碼A*/for(i=0;i<N;i++){if(condition)DoSomething();elseDoOtherthing();}

/*代碼B*/if(condition){for(i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論