一、流程控制控制程序中語句的執(zhí)行順序.二、流程控制方式順序_第1頁
一、流程控制控制程序中語句的執(zhí)行順序.二、流程控制方式順序_第2頁
一、流程控制控制程序中語句的執(zhí)行順序.二、流程控制方式順序_第3頁
一、流程控制控制程序中語句的執(zhí)行順序.二、流程控制方式順序_第4頁
一、流程控制控制程序中語句的執(zhí)行順序.二、流程控制方式順序_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第四章第四章 語句和預處理語句和預處理一、流程控制一、流程控制控制程序中語句的執(zhí)行順序。控制程序中語句的執(zhí)行順序。二、流程控制方式:二、流程控制方式:順序控制、條件分支控制、循環(huán)控制。順序控制、條件分支控制、循環(huán)控制。三、程序結構種類:三、程序結構種類:順序結構、條件分支結構、循環(huán)結構。順序結構、條件分支結構、循環(huán)結構。4.1 流程控制與程序結構流程控制與程序結構第四章第四章 語句和預處理語句和預處理1、順序流程、順序流程程序中的語句按先后順序依此執(zhí)行。程序中的語句按先后順序依此執(zhí)行。如:如:(1)int i; (2)cini; (3)couti2;計算機按語句的先后順序依此執(zhí)行計算機按語句的

2、先后順序依此執(zhí)行(1)()(2)()(3)4.1 流程控制與程序結構流程控制與程序結構第四章第四章 語句和預處理語句和預處理2、條件分支結構、條件分支結構(1)由特定的條件決定執(zhí)行哪個語句。)由特定的條件決定執(zhí)行哪個語句。(2)分類)分類 單分支結構單分支結構 多分支結構多分支結構(3)條件分支結構用)條件分支結構用if語句或語句或switch語句語句實現(xiàn)。實現(xiàn)。4.1 流程控制與程序結構流程控制與程序結構第四章第四章 語句和預處理語句和預處理3、循環(huán)結構、循環(huán)結構(1)由特定的條件決定某個語句重復)由特定的條件決定某個語句重復 執(zhí)行的次數(shù)。執(zhí)行的次數(shù)。(2)分類)分類 先判斷后執(zhí)行結構先判斷

3、后執(zhí)行結構 先執(zhí)行后判斷結構先執(zhí)行后判斷結構(3)循環(huán)結構用)循環(huán)結構用for語句語句, while語句或語句或 dowhile 語句來實現(xiàn)。語句來實現(xiàn)。4.1 流程控制與程序結構流程控制與程序結構第四章第四章 語句和預處理語句和預處理說明:說明:1、三種程序結構的共同特點:、三種程序結構的共同特點: 只有一個入口和一個出口。只有一個入口和一個出口。2、三種程序結構之間的關系:、三種程序結構之間的關系:銜接:一個結構的出口是另一個結構的入銜接:一個結構的出口是另一個結構的入口。口。嵌套:自身嵌套、相互嵌嵌套:自身嵌套、相互嵌套套4.1 流程控制與程序結構流程控制與程序結構第四章第四章 語句和預

4、處理語句和預處理一、一、if語句語句 格式格式1: 格式格式2: if(條件)語句(條件)語句1 if(條件)語句(條件)語句1 else 語句語句2若條件為真,執(zhí)行若條件為真,執(zhí)行語句語句1,否則什么都不做,否則什么都不做若條件為真,執(zhí)行若條件為真,執(zhí)行語句語句1,否則執(zhí)行語句,否則執(zhí)行語句24.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理說明:說明:1、格式中的條件通常是一個邏輯表達式,、格式中的條件通常是一個邏輯表達式,若不是,則一切若不是,則一切0值轉換為值轉換為false,一切非一切非0值轉換為值轉換為true。2、格式中的語句、格式中的語句1和語句和語句2可以是基本語

5、句,可以是基本語句,也可以是復合語句,但不能不是語句,也可以是復合語句,但不能不是語句,也不能是多個語句。也不能是多個語句。4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理例例1:if (x)cout”x is non-zero ”else cout ” x is zero ”;例例2:if(x=100)a=1;b=2;else a=-1;b=-2;例例1:if (x)cout”x is non-zero ”;else cout0) if(ab) z=a; else z=b; if (n0) if(ab) z=a; else z=b;4.2 選擇語句選擇語句第四章第四章 語句和預

6、處理語句和預處理例例2: if(x0) if(x10) coutA ; else cout B ; else if(y-20) cout C ; else cout0) if(ab) z=a; else z=b;3、把永真條件或永假條件用于、把永真條件或永假條件用于if語句,是一語句,是一種嚴重的邏輯錯誤。種嚴重的邏輯錯誤。if (nb) z=a;4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理三、三、if多分支結構多分支結構通過規(guī)范化的通過規(guī)范化的if嵌套所構成的多分支結構。嵌套所構成的多分支結構。嵌套的嵌套的if語句放在語句放在elseelse之后之后4.2 選擇語句選擇語句

7、第四章第四章 語句和預處理語句和預處理格式:格式: if(條件(條件1)語句)語句1 else else if(條件(條件2)語句)語句2 else else if(條件(條件3)語句)語句3 else else if(條件(條件n)語句)語句n 【 else else 語句語句n+1 】注:多分支結構中的各個條件都應當是注:多分支結構中的各個條件都應當是 相互排斥的,任意時刻頂多有一個相互排斥的,任意時刻頂多有一個 條件得以滿足。條件得以滿足。4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理例:例:#include void main( ) float score; cin s

8、core; if(score100) cout ”輸入錯誤!輸入錯誤!”; else if (score 60) cout ”不及格不及格”; else if (score 70) cout ”及格及格”; else if (score 80) cout ”中等中等”; else if (score 90) cout ”良好良好”; else cout ”優(yōu)秀優(yōu)秀”; 4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理四、四、switch語句和語句和switch多分支結構多分支結構 1、switch語句的格式:語句的格式: switch(整型表達式)(整型表達式) case 整型常

9、量表達式整型常量表達式1:語句序列:語句序列1; case 整型常量表達式整型常量表達式2:語句序列:語句序列2; case 整型常量表達式整型常量表達式k:語句序列:語句序列k; 【default:語句序列語句序列k+1 】 4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理2、執(zhí)行順序:、執(zhí)行順序: 先計算先計算switch語句中表達式的值,然后語句中表達式的值,然后 在在case 語句中尋找值相等的常量表達式,語句中尋找值相等的常量表達式,并以此為入口,由此開始并以此為入口,由此開始 順序執(zhí)行。如順序執(zhí)行。如果沒有找到果沒有找到 相等的常量表達式,且相等的常量表達式,且def

10、ault 后的語句后的語句n+1存在,則執(zhí)行語句存在,則執(zhí)行語句n+1,否則什么都不做。,否則什么都不做。4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理3、幾點說明:、幾點說明:(1)整型表達式如果不是整型,則它的值將整型表達式如果不是整型,則它的值將自動轉換為整型。自動轉換為整型。 (2)整型常量表達式通常就是一個整型常量。整型常量表達式通常就是一個整型常量。如果不是,將自動轉換為整型。如果不是,將自動轉換為整型。 (3)case的作用只是標明一個入口以及轉入該的作用只是標明一個入口以及轉入該入口的條件。一旦從某個入口進入一個語入口的條件。一旦從某個入口進入一個語句序列,就從

11、該語句序列開始順序執(zhí)行,句序列,就從該語句序列開始順序執(zhí)行,直到以下所有語句序列執(zhí)行完畢時為止。直到以下所有語句序列執(zhí)行完畢時為止。4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理4、語句序列可以是空的,即其中一個語、語句序列可以是空的,即其中一個語 句也沒有。句也沒有。5、break語句可以提前結束語句可以提前結束switch語句的語句的 執(zhí)行。執(zhí)行。4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理例:根據(jù)整型變量例:根據(jù)整型變量dayoftheweek(0-6)值輸出其表示的星期值輸出其表示的星期幾的英語單詞。(無幾的英語單詞。(無break語句)語句) Swi

12、tch(dayoftheweek) case 0: cout ”Sunday”; case 1: cout ”Monday”; case 2: cout ”Tuesday”; case 3: cout ”Wednesday”; case 4: cout ”Thursday” case 5: cout ”Friday”; case 6: cout ”Saturday”; default:cout ”Unknown week day”; ;4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理若若dayoftheweek的值為的值為4,則輸出結果為:則輸出結果為:ThursdayFrida

13、ySaturdayUnknown week day4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理(有(有break語句)語句) Switch(dayoftheweek) case 0: cout ”Sunday”; break; case 1: cout ”Monday”; break; case 2: cout ”Tuesday”; break; case 3: cout ”Wednesday”; break; case 4: cout ”Thursday”; break; case 5: cout ”Friday”; break; case 6: cout ”Saturda

14、y”; break; default:cout ”Unknown week day”; break; ;4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理若若dayoftheweek的值為的值為4,則輸出結果為:則輸出結果為:Thursday4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理五、五、if多分支結構和多分支結構和switch多分支結構的相多分支結構的相互替代:互替代:替代條件:替代條件: switch語句中每個非空語句序列的最后語句中每個非空語句序列的最后一個語句都為一個語句都為break語句。語句。4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和

15、預處理例:例:switch(k) if(k=1|k=2|k=3) coutA ;case1: else if(k=4|k=5)case2: cout B ;case3: coutA ;break; else cout C ;case4:case5: cout B ;break;default: cout=0&x=2) cout=20&x=22) cout Y ; else cout Z ;switch(x)case0: case1: case2:coutX ;break; case20: case21: case22:cout Y ; break; default:cout Z

16、 ;4.2 選擇語句選擇語句第四章第四章 語句和預處理語句和預處理一、一、for循環(huán)循環(huán) 1、 for語句構成一種先判斷后執(zhí)行的循環(huán)結構。語句構成一種先判斷后執(zhí)行的循環(huán)結構。 2、 for語句格式:語句格式: for(循環(huán)初始化;循環(huán)條件;循環(huán)參數(shù)調整)(循環(huán)初始化;循環(huán)條件;循環(huán)參數(shù)調整) 循環(huán)體循環(huán)體4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理說明:說明:(1)循環(huán)條件應當是一個邏輯表達式。)循環(huán)條件應當是一個邏輯表達式。(2)循環(huán)初始化和循環(huán)參數(shù)調整都應當)循環(huán)初始化和循環(huán)參數(shù)調整都應當 是具有副作用的表達式,其中循環(huán)是具有副作用的表達式,其中循環(huán) 參數(shù)調整應當能夠影響

17、循環(huán)條件。參數(shù)調整應當能夠影響循環(huán)條件。(3)循環(huán)體是一個語句。(可以是一個)循環(huán)體是一個語句。(可以是一個 簡單語句、復合語句或空語句)簡單語句、復合語句或空語句)4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理3、執(zhí)行過程:、執(zhí)行過程:(1)進行循環(huán)初始化;)進行循環(huán)初始化;(2)判斷循環(huán)條件;)判斷循環(huán)條件;(3)如果循環(huán)條件為真,則執(zhí)行循環(huán)體、)如果循環(huán)條件為真,則執(zhí)行循環(huán)體、對循環(huán)參數(shù)調整,然后轉向步驟(對循環(huán)參數(shù)調整,然后轉向步驟(2););如果循環(huán)條件為假,則結束循環(huán)。如果循環(huán)條件為假,則結束循環(huán)。4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理4、流

18、程圖、流程圖:循環(huán)初始化循環(huán)初始化循環(huán)條件?循環(huán)條件?循環(huán)體循環(huán)體循環(huán)參數(shù)調整循環(huán)參數(shù)調整YN例:例:for(int i=0;i20;i+=5) couti ; 執(zhí)行結果為:執(zhí)行結果為: 0 5 10 154.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理4、 幾種特殊的幾種特殊的for語句語句(1)for( ;循環(huán)條件循環(huán)條件; ) 循環(huán)體循環(huán)體此時用此時用while語句更好。語句更好。(2)for(循環(huán)初始化循環(huán)初始化; ;循環(huán)參數(shù)調整循環(huán)參數(shù)調整)循環(huán)體循環(huán)體循環(huán)條件為空循環(huán)條件為空 永真條件永真條件 無限循環(huán)無限循環(huán) 在循環(huán)體中用在循環(huán)體中用break語句可強制退出語句可強

19、制退出在循環(huán)體中不用在循環(huán)體中不用break語句形成死循環(huán)語句形成死循環(huán)4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理(3) for(循環(huán)初始化循環(huán)初始化;循環(huán)條件循環(huán)條件;循環(huán)參數(shù)調整循環(huán)參數(shù)調整)循環(huán)體為空,用于延遲一段時間。循環(huán)體為空,用于延遲一段時間。4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理例例 輸入輸入10個數(shù),計算并顯示它們的合計。個數(shù),計算并顯示它們的合計。#includevoid main( ) double x,s=0; /保存累加結果的變量應初始化為保存累加結果的變量應初始化為0 cout”請輸入請輸入10個數(shù)個數(shù): ”; for(in

20、t i=0;ix; s+=x; cout ”合計合計: ” s;若從鍵盤輸入:若從鍵盤輸入:1 2 3 4 5 6 7 8 9 10則結果為:則結果為:554.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理例例 顯示輸出一個三角形。顯示輸出一個三角形。#includevoid main( ) for(int i=0;i6;i+) coutendl; int j; for(j=0;j5-i;j+) cout ; for(j=0;ji+i+1;j+) cout ; 4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理例例 顯示輸出顯示輸出99乘法表。乘法表。#includev

21、oid main( ) coutendlsetw(3)”| ”; int i; for(i=1;i10;i+) coutsetw(3)i; coutendl ” -+- ”; for(i=1;i10;i+)coutendlsetw(2)i ”| ”; for(int j=1;j10;j+)coutsetw(3)ij;4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理說明:說明:1、setw:為下一個要輸出的數(shù)據(jù)設置輸:為下一個要輸出的數(shù)據(jù)設置輸 出寬度,寬度值由隨后的參數(shù)給出。出寬度,寬度值由隨后的參數(shù)給出。如:如:cout1setw(8)23;則輸出結果為:則輸出結果為:1 23

22、2、 iomanip.h:包含:包含setw等大多數(shù)操縱等大多數(shù)操縱 符的定義以及符的定義以及iostream.h中的所有內容。中的所有內容。4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理二、二、while循環(huán)循環(huán)1、 while 語句構成一種先判斷后執(zhí)行的語句構成一種先判斷后執(zhí)行的 循環(huán)結構。循環(huán)結構。2、 while語句格式:語句格式: while(循環(huán)條件)(循環(huán)條件) 循環(huán)體循環(huán)體4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理3、執(zhí)行過程:、執(zhí)行過程:當循環(huán)條件為真時,當循環(huán)條件為真時,執(zhí)行循環(huán)體,否則執(zhí)行循環(huán)體,否則退出循環(huán)。退出循環(huán)。 4、流程圖(見

23、右上圖)、流程圖(見右上圖) 循環(huán)條件?循環(huán)條件? 循環(huán)體循環(huán)體YN4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理5、for語句和語句和while語句的區(qū)別:語句的區(qū)別:(1) for語句一般用于循環(huán)次數(shù)已知的情況;語句一般用于循環(huán)次數(shù)已知的情況;(2) while語句不僅可以用于循環(huán)次數(shù)已知語句不僅可以用于循環(huán)次數(shù)已知 的情的情 況,也可以用于循環(huán)次數(shù)未知的情況;況,也可以用于循環(huán)次數(shù)未知的情況;(3)一切用)一切用for語句實現(xiàn)的循環(huán)都可以用語句實現(xiàn)的循環(huán)都可以用while語句來代替,反之不可以。語句來代替,反之不可以。(4)在循環(huán)次數(shù)已知的情況下,)在循環(huán)次數(shù)已知的情況下

24、, for語句和語句和while語句可以相互轉換。語句可以相互轉換。4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理例:例:for(int i=0;i10;i+) couti; int i=0;while(i10)cout0) cout0;i-)couti;4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理例例 求數(shù)列求數(shù)列1/2,3/4,5/8,7/16,9/32的所有的所有 大于等于大于等于0.000001的數(shù)據(jù)項之和的數(shù)據(jù)項之和,顯顯 示輸出計算的結果。示輸出計算的結果。 4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理方法一方法一基于遞推公式基于

25、遞推公式:#includevoid main( ) int n=1,d=2; double s=0.0,s0; while(s0=double(n)/d)=0.000001) s+=s0; n+=2; d+=d;couts;4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理方法二方法二基于通項公式基于通項公式:#include #include void main( ) int i=1; double s=0.0,s0; while(s0=(i+i-1)/pow(2,i)=0.000001) s+=s0; i+; couts; 4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句

26、和預處理例:設計函數(shù)例:設計函數(shù)double powi(double x,int n);,它計算,它計算并返回并返回x的的n次方。次方。#includedouble powi(double x,int n) double a=1; /保存累乘結果的變量應初始化為保存累乘結果的變量應初始化為1 while(n-) a=x; return a;void main( )coutpowi(5.0,3)endlpowi(5.1,3);4.3 循環(huán)結構循環(huán)結構第四章第四章 語句和預處理語句和預處理三、三、dowhile循環(huán)循環(huán)1、 do while 語句構成一種先執(zhí)行后判斷語句構成一種先執(zhí)行后判斷 的循環(huán)結構。的循環(huán)結構。2、 do while語句格式:語句格式: do 循環(huán)體循環(huán)體 while(循環(huán)條件)(循環(huán)條件);4.3 循環(huán)結

溫馨提示

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

評論

0/150

提交評論