《第3章 程序流程控制》由會員分享,可在線閱讀,更多相關(guān)《第3章 程序流程控制(40頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,Page,*,點(diǎn)擊此處結(jié)束放映,第,3,章 程序流程控制,程序流程與算法基礎(chǔ),3.1,選擇結(jié)構(gòu)語句,3.2,循環(huán)結(jié)構(gòu)語句,3.3,流程轉(zhuǎn)向語句,3.4,3.1,程序流程與算法基礎(chǔ),3.1.1,程序與算法,1,算法,可以用編寫程序來指揮計(jì)算機(jī)完成各種任務(wù),對于一個(gè)具體的任務(wù),應(yīng)該如何編寫出合適的程序來解決問題,這就需要為程序設(shè)計(jì)算法。,算法就是解決某一具體問題的方法和步驟。,算法具有以下,5,個(gè)特點(diǎn)。,(,1,)有窮性,(,2,)可行性,(,3,)確定性,(,4,)有零個(gè)或多個(gè)輸入,(,5,)有一個(gè)或多個(gè)輸出,2,算法的
2、實(shí)現(xiàn),3.1.2,算法流程圖,在程序設(shè)計(jì)中,構(gòu)成算法的基本結(jié)構(gòu)有三種:順序、選擇和循環(huán)。,1,流程圖,圖,3-1 3,種基本算法結(jié)構(gòu)流程圖,2,N-S,圖,圖,3-2 3,種基本算法結(jié)構(gòu)的,N-S,圖,3,算法的圖形描述,圖,3-3 M,!算法的流程圖與,N-S,圖,3.1.3,順序結(jié)構(gòu),圖,3-5,順序結(jié)構(gòu),3.2,選擇結(jié)構(gòu)語句,3.2.1,選擇結(jié)構(gòu)概述,3.2.2 if,語句,1,if,語句,圖,3-9 if,語句流程,if,語句的結(jié)構(gòu)如下:,if(,表達(dá)式,),語句,1,;,2,ifelse,語句,圖,3-10 if.else.,語句執(zhí)行流程,ifelse,語句的結(jié)構(gòu)如下:,if(,表達(dá)
3、式,),語句,1,;,else,語句,2,;,3,ifelse if,語句,圖,3-12 if.else if.,語句執(zhí)行流程圖,if.else if.,語句的結(jié)構(gòu)如下:,if(,表達(dá)式,1),語句,1,;,else if(,表達(dá)式,2),語句,2,;,else if(,表達(dá)式,3),語句,3,;,else,語句,n;,4,使用,if,語句時(shí)的注意事項(xiàng),(,1,)在三種形式的,if,語句中,在,if,關(guān)鍵字之后均為表達(dá)式。該表達(dá)式通常是邏輯表達(dá)式或關(guān)系表達(dá)式,但也可以是其他表達(dá)式,如賦值表達(dá)式等,甚至也可以是一個(gè)變量。,(,2,)在,if,語句中,條件判斷表達(dá)式必須用括號括起來,在語句之后必須
4、加分號。,(,3,)在,if,語句的三種形式中,所有的語句應(yīng)為單個(gè)語句,如果要想在滿足條件時(shí)執(zhí)行一組(多個(gè))語句,則可以把這一組語句用,括起來組成一個(gè)復(fù)合語句。但要注意的是在,之后不用再加分號。,3.2.3 switch,語句,1,switch,語句,switch,語句的格式如下:,switch(,表達(dá)式,),case,常量表達(dá)式,1:,語句,1;,break;,case,常量表達(dá)式,2:,語句,2;,break;,圖,3-13 switch,語句執(zhí)行流程,case,常量表達(dá)式,n:,語句,n;,break;,default:,語句,m;,break;,在使用,switch,語句時(shí)還應(yīng)注意以下
5、幾點(diǎn)。,在,case,后的各常量表達(dá)式的值不能相同,否則會出現(xiàn)錯誤。,在,case,后,允許有多個(gè)語句,可以不用,括起來。,各,case,和,default,子句的先后順序可以變動,而不會影響程序執(zhí)行結(jié)果。,default,子句可以省略不用。,2,switch,語句中的,break,switch,語句有一種比較特殊的用法,就是省略,case,語句塊中的,break,。,如果,break,被省略,則從該,case,語句開始,以后的,case,語句將不再進(jìn)行條件檢查,而是直接執(zhí)行,直到,switch,語句結(jié)束或遇到,break,語句。,3.2.4,選擇結(jié)構(gòu)的嵌套,在程序中需要對多個(gè)條件進(jìn)行判斷,并
6、且這些條件不能在同一條件語句中進(jìn)行判斷,而是有先后順序,即當(dāng)某個(gè)條件滿足后再判斷其他條件時(shí),這時(shí)就要用到選擇結(jié)構(gòu)的嵌套形式。,3.3,循環(huán)結(jié)構(gòu)語句,3.3.1,循環(huán)結(jié)構(gòu)概述,循環(huán)結(jié)構(gòu)可分為當(dāng)型循環(huán)結(jié)構(gòu)與直到型循環(huán)結(jié)構(gòu),前者是先進(jìn)行條件判斷;后者是執(zhí)行一次要重復(fù)執(zhí)行的程序段或語句,再進(jìn)行條件判斷。,圖,3-28,循環(huán)結(jié)構(gòu)流程圖,3.3.2 while,循環(huán)語句,while,循環(huán)是當(dāng)型循環(huán),其形式如下:,while(,表達(dá)式,),循環(huán)體;,圖,3-29 while,循環(huán)流程,3.3.3 dowhile,循環(huán)語句,圖,3-30 do,while,循環(huán)流程,do while,循環(huán)語句的使用格式如下:,
7、do,循環(huán)體;,while,(表達(dá)式),;,3.3.4 for,循環(huán)語句,1,for,語句,for,循環(huán)的表達(dá)形式如下:,for(,表達(dá)式,1;,表達(dá)式,2;,表達(dá)式,3),循環(huán)體,;,圖,3-31 for,循環(huán)的程序流程,2,特殊的,for,循環(huán),(,1,),for,(,;,表達(dá)式,2;,表達(dá)式,3,),(,2,),for,(,;,表達(dá)式,2;,),(,3,),for,(表達(dá)式,a,表達(dá)式,b;,表達(dá)式,2;,表達(dá)式,3,),(,4,),for,(,;,),3.3.5,循環(huán)的嵌套及注意事項(xiàng),通常情況下,可以按下面的原則選擇合適的循環(huán)語句。,(,1,)如果循環(huán)的次數(shù)在循環(huán)體外決定,可選擇,fo
8、r,語句;,(,2,)如果循環(huán)的次數(shù)由循環(huán)體內(nèi)的執(zhí)行情況而決定,可以選用,while,或,dowhile,語句;,(,3,)如果循環(huán)體最少要執(zhí)行一次,應(yīng)該選用,dowhile,語句;,(,4,)如果循環(huán)體可能一次也不執(zhí)行,應(yīng)該選用,while,語句。,3.4,流程轉(zhuǎn)向語句,3.4.1,流程轉(zhuǎn)向語句概述,有些時(shí)候在程序中還會遇到一些特殊情況,例如:在循環(huán)中途因?yàn)槟撤N原因需要退出循環(huán),在程序中滿足某種條件時(shí)轉(zhuǎn)去執(zhí)行相應(yīng)語句等。這就需要使用中斷或轉(zhuǎn)向語句來達(dá)到目的。,C,語言提供了能夠?qū)崿F(xiàn)這些要求的語句:,goto,(無條件轉(zhuǎn)向語句)、,break,(中斷)、,continue,(接續(xù))和,retu
9、rn,(返回)。,3.4.2 break,語句,break,語句在前面學(xué)習(xí),switch,時(shí)已經(jīng)出現(xiàn)過,在程序中可以用它來從開關(guān)語句,switch,中退出,其實(shí),它還可以用來從程序的循環(huán)語句中跳出。,break,語句的一般形式如下:,break;,while(),if(),break;,3.4.3 continue,語句,continue,稱為接續(xù)語句,它專用于循環(huán)結(jié)構(gòu)中,表示本次循環(huán)結(jié)束,開始下一次循環(huán)。,continue,語句的一般形式如下:,continue;,3.4.4,goto,語句,goto,為無條件轉(zhuǎn)向語句,可以控制程序流程轉(zhuǎn)向到的指定名稱標(biāo)號的地方。,goto,語句的使用形式如下:,goto,標(biāo)號名,;,標(biāo)號名:語句,;,