第4章 Cx51流程控制語句_第1頁
第4章 Cx51流程控制語句_第2頁
第4章 Cx51流程控制語句_第3頁
第4章 Cx51流程控制語句_第4頁
第4章 Cx51流程控制語句_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、4.1.1 順序結(jié)構(gòu)及其流程圖順序結(jié)構(gòu)及其流程圖4.1.2 選擇結(jié)構(gòu)及其流程圖選擇結(jié)構(gòu)及其流程圖4.1.3 循環(huán)結(jié)構(gòu)及其流程圖循環(huán)結(jié)構(gòu)及其流程圖 順序結(jié)構(gòu)是一種最基本、順序結(jié)構(gòu)是一種最基本、最簡單的編程結(jié)構(gòu)。在這種結(jié)最簡單的編程結(jié)構(gòu)。在這種結(jié)構(gòu)中,程序由低地址順序執(zhí)行構(gòu)中,程序由低地址順序執(zhí)行指令代碼。如圖所示,先執(zhí)行指令代碼。如圖所示,先執(zhí)行A操作,然后再執(zhí)行操作,然后再執(zhí)行B操作,兩操作,兩者是順序執(zhí)行的關(guān)系。者是順序執(zhí)行的關(guān)系。4.1.1 順序結(jié)構(gòu)及其流程圖順序結(jié)構(gòu)及其流程圖AB 如果計算機只能做象順序結(jié)構(gòu)那樣簡單的基如果計算機只能做象順序結(jié)構(gòu)那樣簡單的基本操作,那么它的用途將十分有限。

2、計算機功能本操作,那么它的用途將十分有限。計算機功能強大的原因在于它具有決策能力,或者說具有選強大的原因在于它具有決策能力,或者說具有選擇能力。擇能力。4.1.2 選擇結(jié)構(gòu)及其流程圖選擇結(jié)構(gòu)及其流程圖 在如圖所示地選擇在如圖所示地選擇結(jié)構(gòu)中,程序首先對一結(jié)構(gòu)中,程序首先對一個條件個條件(P)進行檢測,進行檢測,當條件為真當條件為真(Y)時執(zhí)行時執(zhí)行任務任務A,反之,反之(N)則執(zhí)行則執(zhí)行任務任務B。P為真?為真?ABYN 利用選擇結(jié)構(gòu),我們可以做一些典型的智能判利用選擇結(jié)構(gòu),我們可以做一些典型的智能判斷工作,比如:斷工作,比如:1、依靠條件選擇開關(guān),打開或者關(guān)閉水泵;、依靠條件選擇開關(guān),打開或

3、者關(guān)閉水泵;2、如果上面的工作重復操作了、如果上面的工作重復操作了22次,那么執(zhí)行次,那么執(zhí)行下面另一個操作;下面另一個操作;3、連續(xù)監(jiān)測一個信號,這個信號指示語言芯片可、連續(xù)監(jiān)測一個信號,這個信號指示語言芯片可以接受下一個字的代碼;以接受下一個字的代碼;1、串行多分支結(jié)構(gòu)及其流程圖、串行多分支結(jié)構(gòu)及其流程圖 在串行多分支結(jié)構(gòu)中,以單選擇結(jié)構(gòu)中的某在串行多分支結(jié)構(gòu)中,以單選擇結(jié)構(gòu)中的某一條件一條件(P)為真的分支方向作為串行多分支方向繼為真的分支方向作為串行多分支方向繼續(xù)進行選擇結(jié)構(gòu)的操作;假如條件為假,則執(zhí)行續(xù)進行選擇結(jié)構(gòu)的操作;假如條件為假,則執(zhí)行另外的操作另外的操作A。最終程序在若干種選

4、擇之中選出一。最終程序在若干種選擇之中選出一種操作來執(zhí)行,并從一個共用的出口退出。種操作來執(zhí)行,并從一個共用的出口退出。P為真?為真?ABNYQ為真?為真?NYR為真?為真?NCYD入口入口出口出口2、并行多分支結(jié)構(gòu)及其流程圖、并行多分支結(jié)構(gòu)及其流程圖 在并行多分支結(jié)構(gòu)中,根據(jù)在并行多分支結(jié)構(gòu)中,根據(jù)k值的不同取值值的不同取值0、1、2、3分別選擇執(zhí)行分別選擇執(zhí)行A、B、C、D。ABk =0CD入口入口出口出口k = ?k =1k =2k =3 所有的分支機構(gòu)都使程序流程一直向前執(zhí)行,所有的分支機構(gòu)都使程序流程一直向前執(zhí)行,除非使用了定向跳轉(zhuǎn)語句除非使用了定向跳轉(zhuǎn)語句goto,而使用循環(huán)結(jié)構(gòu)可

5、,而使用循環(huán)結(jié)構(gòu)可以使分支程序重復地執(zhí)行。以使分支程序重復地執(zhí)行。4.1.3 循環(huán)結(jié)構(gòu)及其流程圖循環(huán)結(jié)構(gòu)及其流程圖1、“while”型循環(huán)結(jié)構(gòu)及其流程圖型循環(huán)結(jié)構(gòu)及其流程圖P為真?為真?BANY入口入口出口出口2、“do while”型循環(huán)結(jié)構(gòu)及其流程圖型循環(huán)結(jié)構(gòu)及其流程圖P為真?為真?ANY入口入口出口出口 這兩種循環(huán)結(jié)構(gòu)非常類似,唯一的區(qū)別在于執(zhí)這兩種循環(huán)結(jié)構(gòu)非常類似,唯一的區(qū)別在于執(zhí)行行A的次數(shù)。在的次數(shù)。在“while”循環(huán)中,當條件循環(huán)中,當條件P一開始一開始就為假時,就沒有任何機會執(zhí)行就為假時,就沒有任何機會執(zhí)行A;而在;而在“do while”循環(huán)中,即便條件循環(huán)中,即便條件P一

6、開始就為假,也至少一開始就為假,也至少有一次執(zhí)行有一次執(zhí)行A的機會。的機會。3、流程圖的表示法、流程圖的表示法P為真?為真?ANY入口入口出口出口 前面兩種循環(huán)結(jié)構(gòu)的流程圖中可以看出,通前面兩種循環(huán)結(jié)構(gòu)的流程圖中可以看出,通常情況下,流程圖是以相關(guān)的功能命名的,其變常情況下,流程圖是以相關(guān)的功能命名的,其變量和使用到的程序語句僅作為參考。我們即便不量和使用到的程序語句僅作為參考。我們即便不關(guān)心其變量和程序內(nèi)容,也能夠從流程圖看出整關(guān)心其變量和程序內(nèi)容,也能夠從流程圖看出整個過程以及它能夠完成的功能。個過程以及它能夠完成的功能。P為真?為真?BANY入口入口出口出口 流程圖通常具有如下三種表示法

7、:流程圖通常具有如下三種表示法:循環(huán)直到循環(huán)直到P1.3=0P為真?為真?NY等待等待啟動鍵啟動鍵 把這些流程圖連接起來,并加以適當說明,就把這些流程圖連接起來,并加以適當說明,就可以構(gòu)成一個豐富多彩的流程圖??梢詷?gòu)成一個豐富多彩的流程圖。4.2.1 選擇語句選擇語句if4.2.2 switch/case語句語句 C語言的一個基本判斷語言的一個基本判斷(條件選擇條件選擇)語句就是語句就是if語句,它是串行多分子結(jié)構(gòu)的關(guān)鍵語句,它的基本語句,它是串行多分子結(jié)構(gòu)的關(guān)鍵語句,它的基本結(jié)構(gòu)如下所示:結(jié)構(gòu)如下所示:4.2.1 選擇語句選擇語句ifif(表達式表達式)/基本條件判斷基本條件判斷語句語句;/

8、基本任務基本任務else if(表達式表達式)/補充條件補充條件(可選可選)語句語句;/補充條件下的任務補充條件下的任務else/條件之外情況條件之外情況(可選可選)語句語句;/條件之外任務條件之外任務例例if(a1)/基本條件判斷基本條件判斷c=0;/基本任務基本任務else if(a=2)/補充條件補充條件(可選可選)c=20;/補充條件下的任務補充條件下的任務else/條件之外情況條件之外情況(可選可選)c=30;/條件之外任務條件之外任務 if語句還可以多層嵌套:語句還可以多層嵌套:if(表達式表達式)/基本條件判斷基本條件判斷/嵌套條件語句嵌套條件語句 if(表達式表達式)/嵌套基本

9、條件判斷嵌套基本條件判斷 語句語句; /嵌套基本任務嵌套基本任務 else if(表達式表達式)/嵌套補充條件嵌套補充條件(可選可選) 語句語句;/嵌套補充任務嵌套補充任務 else if(表達式表達式)/補充條件補充條件(可選可選)語句語句;/補充條件下的任務補充條件下的任務else/條件之外情況條件之外情況(可選可選)語句語句;/條件之外任務條件之外任務例例if(a1)/基本條件判斷基本條件判斷 if(b1)/嵌套基本條件判斷嵌套基本條件判斷 c=0;/嵌套基本任務嵌套基本任務 else if(b=2)/嵌套補充條件嵌套補充條件(可選可選) c=2;/嵌套補充任務嵌套補充任務 else/嵌

10、套條件外情況嵌套條件外情況(可選可選) c=3;/嵌套條件之外任務嵌套條件之外任務/基本任務基本任務else if(a=2)/補充條件補充條件(可選可選)c=20;/補充條件下的任務補充條件下的任務 實際應用中常常會遇到多分支選擇問題。例如,以一個實際應用中常常會遇到多分支選擇問題。例如,以一個變量的值作為判斷條件,進行多路并行任務的跳轉(zhuǎn)。變量的值作為判斷條件,進行多路并行任務的跳轉(zhuǎn)。switch/case語句是并行多分支結(jié)構(gòu)的關(guān)鍵語句,其結(jié)構(gòu)如語句是并行多分支結(jié)構(gòu)的關(guān)鍵語句,其結(jié)構(gòu)如下所示:下所示:4.2.2 switch/case語句語句switch(表達式表達式)/基本條件判斷基本條件判

11、斷 case 值值0:/條件條件0 語句語句;break;/條件條件0任務任務 case 值值1:/條件條件1 語句語句;break;/條件條件1任務任務 default:/所有條件外所有條件外 語句語句;/所有條件外任務所有條件外任務和和if語句一樣,語句一樣,switch/case語句也可以多層嵌套:語句也可以多層嵌套:switch(a)/基本條件判斷基本條件判斷 case 0:/條件條件0 c=0;break;/條件條件0任務任務 case 2:/條件條件1 c=2; break;/條件條件1任務任務 default:/條件外情況條件外情況(可選可選) switch(a)/嵌套基本條件判

12、斷嵌套基本條件判斷 case 0:/嵌套條件嵌套條件0 c=10;break;/任務任務0 case 2:/嵌套條件嵌套條件1 c=20; break; /嵌套任務嵌套任務1 default:/嵌套條件外情況嵌套條件外情況(可選可選) c=30;/嵌套條件之外任務嵌套條件之外任務 /嵌套條件之外任務嵌套條件之外任務4.3.1 while語句語句4.3.2 do while語句語句4.3.3 for循環(huán)語句循環(huán)語句 while語句的一般形式為:語句的一般形式為:4.3.1 while語句語句while(表達式表達式)語句;語句; /*循環(huán)體循環(huán)體*/ 其中表達式是其中表達式是while語句能否繼

13、續(xù)的條件,而語句部分語句能否繼續(xù)的條件,而語句部分則是循環(huán)體,用來完成某些任務。則是循環(huán)體,用來完成某些任務。 只要表達式為真,就重復執(zhí)行其中的循環(huán)體,直到表只要表達式為真,就重復執(zhí)行其中的循環(huán)體,直到表達式結(jié)果為假時,中斷這個循環(huán),繼續(xù)執(zhí)行循環(huán)體之外的達式結(jié)果為假時,中斷這個循環(huán),繼續(xù)執(zhí)行循環(huán)體之外的其它任務。其它任務。 若表達式一開始就是假的,那么就沒有機會執(zhí)行循環(huán)若表達式一開始就是假的,那么就沒有機會執(zhí)行循環(huán)體內(nèi)的任務;反之加入表達式一直為真,那么就不會從循體內(nèi)的任務;反之加入表達式一直為真,那么就不會從循環(huán)體跳出,出現(xiàn)死循環(huán)。環(huán)體跳出,出現(xiàn)死循環(huán)。while循環(huán)語句的語法流程如下圖所示

14、:循環(huán)語句的語法流程如下圖所示:P為真?為真?進入進入while循環(huán)循環(huán)循環(huán)體內(nèi)重循環(huán)體內(nèi)重復操作語句復操作語句NY入口入口出口出口退出循環(huán)執(zhí)退出循環(huán)執(zhí)行下面語句行下面語句 while結(jié)構(gòu)的結(jié)構(gòu)的最大特點最大特點在于,其循環(huán)測試條件處在于,其循環(huán)測試條件處于循環(huán)體的開頭,若想進入循環(huán)體這必須首先進行于循環(huán)體的開頭,若想進入循環(huán)體這必須首先進行循環(huán)條件測試。若測試條件一開始就不合格,則循循環(huán)條件測試。若測試條件一開始就不合格,則循環(huán)體內(nèi)語句就環(huán)體內(nèi)語句就一次都不會執(zhí)行一次都不會執(zhí)行。 while循環(huán)體內(nèi)的語句必須使用循環(huán)體內(nèi)的語句必須使用花括號花括號 括起括起來,表示整個花括號內(nèi)的內(nèi)容是一個統(tǒng)一

15、的循環(huán)體。來,表示整個花括號內(nèi)的內(nèi)容是一個統(tǒng)一的循環(huán)體。 否則循環(huán)體只是緊接著否則循環(huán)體只是緊接著while語句后的第一個語語句后的第一個語句。句。例例while( (P1 & 0 x10) & y+ = 5 ) a = 1; b = 45; x = P1; 這里有一個省略,由于默認的數(shù)據(jù)類型轉(zhuǎn)換,這里有一個省略,由于默認的數(shù)據(jù)類型轉(zhuǎn)換,(P1&0 x10)實際上相當于邏輯量:實際上相當于邏輯量: (P1&0 x10)!=0。 這個條件也可以簡單地寫成這個條件也可以簡單地寫成 P1.4,也是這個條件,可以,也是這個條件,可以保證在最壞的情況下,可以在保證在最壞的情況下,可以在P1.4輸入低電平

16、輸入低電平0來結(jié)束這個來結(jié)束這個循環(huán)體。循環(huán)體。 再次強調(diào),一定要有保證在最壞情況下退出循環(huán)再次強調(diào),一定要有保證在最壞情況下退出循環(huán)體的保全措施,以防出現(xiàn)體的保全措施,以防出現(xiàn)死循環(huán)死循環(huán)。 要養(yǎng)成對循環(huán)體加花括號的習慣要養(yǎng)成對循環(huán)體加花括號的習慣。盡管在循環(huán)盡管在循環(huán)體只有一條語句時可以不加花括號,但是加了可以體只有一條語句時可以不加花括號,但是加了可以更加安全,特別在多層嵌入語句的情況下,可以避更加安全,特別在多層嵌入語句的情況下,可以避免不小心引起的錯誤。免不小心引起的錯誤。do while語句的一般形式為:語句的一般形式為: do 語句;語句; /*循環(huán)體循環(huán)體*/ while (

17、表達式表達式 ) 其中表達式仍然是其中表達式仍然是while語句能否繼續(xù)的條件,語句能否繼續(xù)的條件,語句部分同樣是循環(huán)體,用來完成某些任務。語句部分同樣是循環(huán)體,用來完成某些任務。 只要表達式為真,就重復執(zhí)行其中的循環(huán)體,只要表達式為真,就重復執(zhí)行其中的循環(huán)體,直到表達式結(jié)果為假時,中斷這個循環(huán),繼續(xù)執(zhí)行直到表達式結(jié)果為假時,中斷這個循環(huán),繼續(xù)執(zhí)行循環(huán)體之外的其它任務。循環(huán)體之外的其它任務。4.3.2 do while語句語句do while循環(huán)語句的語法流程如下圖所示:循環(huán)語句的語法流程如下圖所示:P為真?為真?進入進入do while循環(huán)循環(huán)循環(huán)體內(nèi)重循環(huán)體內(nèi)重復操作語句復操作語句NY入口

18、入口出口出口退出循環(huán)執(zhí)退出循環(huán)執(zhí)行下面語句行下面語句 前面已經(jīng)提到過,前面已經(jīng)提到過,“while”循環(huán)和循環(huán)和“do while”循環(huán)循環(huán)非常相似,唯一的區(qū)別在于:在非常相似,唯一的區(qū)別在于:在“while”循環(huán)中,當表達循環(huán)中,當表達式一開始就為假時,就沒有任何機會執(zhí)行語句;而在式一開始就為假時,就沒有任何機會執(zhí)行語句;而在“do while”循環(huán)中,即便表達式一開始就為假,也至少循環(huán)中,即便表達式一開始就為假,也至少有一次執(zhí)行語句的機會。有一次執(zhí)行語句的機會。例例 do a=1; b=45; x=P1; while( P1.4 & y+ =5) for語句的一般形式為:語句的一般形式為:

19、for ( 初始語句初始語句; 循環(huán)條件循環(huán)條件P; 結(jié)尾語句結(jié)尾語句 ) 語句語句 ;/*循環(huán)體循環(huán)體*/ 4.3.3 for循環(huán)語句循環(huán)語句 C語言中語言中for循環(huán)語句循環(huán)語句u可以用于循環(huán)次數(shù)可以用于循環(huán)次數(shù)已確定已確定的情況,的情況,u可以用于循環(huán)次數(shù)可以用于循環(huán)次數(shù)不確定不確定的情況。的情況。 for循環(huán)語句中循環(huán)語句中:初始語句初始語句:用來給定進入循環(huán)體之前所需要初始化的變量,用來給定進入循環(huán)體之前所需要初始化的變量,循環(huán)條件循環(huán)條件P: 給定繼續(xù)執(zhí)行循環(huán)體的條件,給定繼續(xù)執(zhí)行循環(huán)體的條件,結(jié)尾語句結(jié)尾語句:則給定循環(huán)體執(zhí)行完畢后,在繼續(xù)執(zhí)行循環(huán)的條件則給定循環(huán)體執(zhí)行完畢后,在繼續(xù)執(zhí)行循環(huán)的條件判斷之前需要執(zhí)行的變量改變判斷之前需要執(zhí)行的變量改變(尺度增量尺度增量) 。for循環(huán)語句的語法流程如下圖所示:循環(huán)語句的語法流程如下圖所示:P為真?為真?初始語句初始語句循環(huán)體內(nèi)重循環(huán)體內(nèi)重復操作語句復操作語句NY入口入口出口出口退出循環(huán)執(zhí)退出循環(huán)執(zhí)行下面語句行下面語句 通常情況下通常情況下for循環(huán)語句都會有一個循環(huán)變循環(huán)語句都會有一個循環(huán)變量,它

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論