臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C_第1頁
臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C_第2頁
臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C_第3頁
臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C_第4頁
臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)13.1 選擇語句選擇語句3.2 循環(huán)語句循環(huán)語句3.3 轉(zhuǎn)向語句轉(zhuǎn)向語句臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)2如果今天是春季的周末,我會去登山如果今天是春季的周末,我會去登山如果今天是夏季的周末,我會去游泳如果今天是夏季的周末,我會去游泳如果今天是秋季的周末,我會去釣魚如果今天是秋季的周末,我會去釣魚如果如果今天今天是冬季的周末是冬季的周末,我會去滑雪我會去滑雪臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)3 if 語句形式語句形式1:例:例: if(ab) couta b : a b a a 5 7 2 b bc ca a 2 7 5 b bc c 2

2、 7 a c : a c 2 b c : b c a a 2 5 7 b bc ca ba b , a ca b & b c臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)5# include using namespace std;void main() int a, b, c, t ; cout a b c ; if ( a b ) t = a ; a = b ; b = t ; if ( a c ) t = a ; a = c ; c = t ; if ( b c ) t = b ; b = c ; c = t ; cout a b c endl;臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)

3、6 if 語句形式語句形式2:if( 表達式表達式 ) 語句語句1 ;else 語句語句2 ; 表達式表達式 語語 句句 1語語 句句 2例:例:if(a=b) coutaendl; else coutbendl; 臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)7 if語句的嵌套 if 語句中的執(zhí)行語句又是另一個if語句,稱為嵌套if語句 if 與 else 的配對關(guān)系:else 總是與它接近的if 配對 使用復(fù)合語句,可以改變條件語句的執(zhí)行流程臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)8例例: :編寫程序計算貨物運費。設(shè)貨物運費每噸單價編寫程序計算貨物運費。設(shè)貨物運費每噸單價 p p(元)與運輸元)

4、與運輸 距離距離 s s(公里)之間有如下關(guān)系:公里)之間有如下關(guān)系:400204003005 .22300200252001005 .2710030sssssp =p =輸入要托運的貨物重量為輸入要托運的貨物重量為 w 噸,托運距離噸,托運距離 s 公里,計算總運費公里,計算總運費 t : t = p * w * s臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)9truefalsetruetruetruefalsefalsefalseS 100?S 100?S 200?S 200?S 300?S 300?S 400?S 400?P = 30P = 30P = 20P = 20P = 22.5P =

5、 22.5P = 25P = 25P = 27.5P = 27.5t = p t = p * * w w * * s s臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)10#include using namespace std;void main() double t , p , w , s ; cout w ; cout s ; if ( s 100 ) p = 30 ; else if ( s 200 ) p = 27.5 ; else if ( s 300 ) p = 25 ; else if ( s 400 ) p = 22.5 ; else p = 20 ; t = p * w * s ;

6、 cout The cost is: t s ; if ( s 300 ) p = 25 ; else if ( s 100 ) p = 30 ; else if ( s 400 ) p = 22.5 ; else if ( s 200 ) p = 27.5 ; else p = 20 ; t = p * w * s ;若輸入若輸入 s : 150 輸出輸出 t 值等于多少?為什么?值等于多少?為什么?臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)11例例 : 輸入三個整數(shù),按從小到大順序輸出輸入三個整數(shù),按從小到大順序輸出3 個數(shù)的個數(shù)的 6 種可能排列方式:種可能排列方式: 1. a b c a

7、 b & b c 2. a c b a c & c b 3. b a c b a & a c 4. b c a b c & c a 5. c a b c a & a b 6. c b a c b & b a可以直接可以直接用用 6個個 if 語句寫出程序語句寫出程序最最壞壞情況:情況:6( 9個關(guān)系運算和個關(guān)系運算和 3個邏輯運算)個邏輯運算)最最好好情況:情況:1( 2個關(guān)系運算和個關(guān)系運算和 1個邏輯運算)個邏輯運算)改進分析:改進分析:首先分析首先分析a,b的順序的順序然后分析然后分析c的情況的情況臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)1

8、2truefalsetruetruetruefalsefalsefalsefalsetruea b ?a b ?b c ?b c ?a c ?a c ?c, a, bc, a, ba, c, ba, c, ba, b, ca, b, ca c ?a c ?b c ?b c ?b, a, cb, a, cb, c, ab, c, ac, b, ac, b, ab aa b最最壞壞情況:情況:1,2,5,6(做(做3次關(guān)系運算)次關(guān)系運算)最最好好情況:情況:3,4(做(做2次關(guān)系運算)次關(guān)系運算)123456臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)13truefalsetruetruetruef

9、alsefalsefalsefalsetruea b ?a b ?b c ?b c ?a c ?a c ?c, a, bc, a, ba, c, ba, c, ba, b, ca, b, ca c ?a c ?b c ?b c ?b, a, cb, a, cb, c, ab, c, ac, b, ac, b, ab aa b# include using namespace std;void main() int a, b, c ; cout a b c ; if ( a b ) if ( b c ) cout a b c endl ; else if ( a c ) cout a c b e

10、ndl ; else cout c a b endl; else if ( a c ) cout b a c endl ; else if ( b c ) cout b c a endl ; else cout c b a 0) if(x50) cout”x is ok.n”; else cout0) if(x 50) cout”O(jiān)Kn”; else cout0) if(x 50) cout”O(jiān)Kn”; else cout”NOT OKn”;臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)15if ( E1 ) if ( E2 ) S1 else S2if ( E1 ) if ( E2 ) S1 el

11、se S2分析分析 S1 和和 S2 的執(zhí)行條件:的執(zhí)行條件:E1 & E2執(zhí)行執(zhí)行 S1E1 & ! E2 執(zhí)行執(zhí)行 S2E1 & E2 執(zhí)行執(zhí)行 S1 ! E1 執(zhí)行執(zhí)行 S2注意括號注意括號的作用的作用臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)16 switch語句語句根據(jù)一個整型表達式的值決定程序分支 一般形式一般形式 : switch ( 表達式表達式 ) case 常量表達式常量表達式 1 : 語句語句 1 case 常量表達式常量表達式 2 : 語句語句 2 case 常量表達式常量表達式 n : 語句語句 n default : 語句語句 n+1 注:注:

12、 表達式類型為非浮點型 各常量表達式類型要與之匹配 各常量表達式要求各不相等 default 子句可選。缺省時,沒有 匹配值 switch 語句為空語句標號語句標號臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)17表達式表達式 語句語句 1 語句語句 2 語句語句 3 語句語句 n 語句語句n+1= =常量常量1 1= =常量常量2 2= =常量常量3 3= =常量常量n n= =常量常量n+1n+1臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)18 switch語句與語句與if語句的互換語句的互換/switch多分支語句: switch(整數(shù)表達式) case value1: 語句1; break; c

13、ase value2: 語句2; break; default: 語句n; if(整數(shù)表達式整數(shù)表達式=value1) 語句語句1; else if(整數(shù)表達式整數(shù)表達式=value2) 語句語句2; else 語句語句n; 等價于break:無條件結(jié)束無條件結(jié)束switch語句語句臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)19 小結(jié):小結(jié):選擇語句有if語句和switch語句 if 語句適用于條件判斷比較復(fù)雜的分支結(jié)構(gòu)。嵌套if語句采用就近匹配的原則。用括號 改變復(fù)合語句結(jié)構(gòu),可以改變if與else的匹配關(guān)系。 switch語句根據(jù)一個表達式的不同可能值決定選擇執(zhí)行,適用于條件判斷比較簡單的多

14、路選擇。臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)20 while語句語句當(dāng)型循環(huán)當(dāng)型循環(huán) 循環(huán)體的算法是什么? 循環(huán)的條件、循環(huán)結(jié)束條件是什么? 如何修改循環(huán)條件?while( 條件表達式 )循環(huán)體 ; 臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)21例:例: 一個簡單的循環(huán):一個簡單的循環(huán): 求1001iisum# include using namespace std;void main () int i = 1 , sum = 0 ; while ( i = 100 ) sum = sum + i ; i + ; cout sum = sum endl ;臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C

15、+)22 dowhile語句語句直到型循環(huán)直到型循環(huán)do 循環(huán)體 while( 表達式 );# include using namespace std;void main () int i = 1 , sum = 0 ; do sum += i ; i + ; while ( i = 100 ) ; cout sum = sum endl ;臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)23 for 語句語句for ( 表達式1; 表達式2 ; 表達式3 ) 循環(huán)體 ;循環(huán)初始狀態(tài)循環(huán)初始狀態(tài)繼續(xù)條件繼續(xù)條件(條件表達式)(條件表達式)改變循環(huán)變量改變循環(huán)變量表達式表達式2循環(huán)體循環(huán)體表達式表達式1

16、表達式表達式3臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)24# include using namespace std;void main () int i , sum = 0 ; for ( i =1 ; i = 100 ; i + ) sum + = i ; cout sum = sum endl ;i = 100sum + = ii = 1i +sum = 0cout sum臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)25不同形式的不同形式的 for 語句結(jié)構(gòu)語句結(jié)構(gòu)(1) i =1 ; /缺省表達式缺省表達式1 for ( ; i n break ; /缺省表達式缺省表達式2(3) for

17、( i =1; i = n ; ) sum = sum + i ; i + + ; /缺省表達式缺省表達式3(4) for ( i =1; i = n ; sum + = i + + ) ; /缺省循環(huán)體缺省循環(huán)體(5) for ( i =1; sum + = i + + i n ) break ; /缺省全部缺省全部 for 的表達式的表達式注意注意逗號表達式逗號表達式break:終止循環(huán)終止循環(huán)臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)26 循環(huán)的嵌套循環(huán)的嵌套 一個循環(huán)語句的循環(huán)體內(nèi)又包含循環(huán)語句,稱為嵌套循環(huán) 各種循環(huán)語句都可以互相嵌套/ 測試循環(huán)執(zhí)行次數(shù)#includeusing na

18、mespace std;void main() cout i t j n ; for ( int i =1; i = 3; i + )/ 外循環(huán) cout i ; for ( int j =1; j = 3; j+ )/ 內(nèi)循環(huán) cout t j endl; ij112321233123臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)27 判斷表達式的使用判斷表達式的使用 表達式的值等于非0,是邏輯真;表達式的值等于0,是邏輯假 算術(shù)表達式用于判斷算術(shù)表達式用于判斷 if ( expression != 0 )if ( expression )if ( expression = 0 )if ( !ex

19、pression )輸出輸出1100之間的奇數(shù)之間的奇數(shù)for ( int i = 1 ; i = 100 ; i + ) if ( i % 2 ) cout i t ; i % 2 != 0 x != 0 & y = 0 X坐標軸上不在原點的坐標值坐標軸上不在原點的坐標值 while ( x & !y ) 臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)28賦值表達式用于判斷賦值表達式用于判斷if ( c = a - b ) elsec = a - b ; if ( c != 0 ) 臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)29 小結(jié):小結(jié):while,dowhile,for的區(qū)別的

20、區(qū)別 for通常用于固定步長的循環(huán)通常用于固定步長的循環(huán) while 通常用于循環(huán)條件要在一開始就進行判斷的循環(huán)通常用于循環(huán)條件要在一開始就進行判斷的循環(huán) dowhile用于循環(huán)體至少要執(zhí)行一次的循環(huán)用于循環(huán)體至少要執(zhí)行一次的循環(huán)臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)30 break語句語句 無條件地結(jié)束switch語句, 循環(huán)語句,轉(zhuǎn)向執(zhí)行語句塊的后續(xù)語句 continue語句語句 用于循環(huán)體中,終止當(dāng)前一次循環(huán)臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)31 break除了用在除了用在switch之外,主要的是用在終結(jié)本次循環(huán)之外,主要的是用在終結(jié)本次循環(huán)for(int i; ; ) for

21、( ; ; ) / . if(i=1) break; / . a=1; / .break跳到此處臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)32continue一般是用條件判斷執(zhí)行的,通過反條件,可以免去一般是用條件判斷執(zhí)行的,通過反條件,可以免去continue的的使用,所以,它用來構(gòu)筑良好的程序風(fēng)格使用,所以,它用來構(gòu)筑良好的程序風(fēng)格 for(int n=100; n=200; +n) if(n%3=0) continue; coutnendl; 免去免去continue的情形:的情形: for(int n=100; n=200; +n) if(n%3!=0) coutnendl; 臺州學(xué)院計

22、算機系面向?qū)ο蟪绦蛟O(shè)計(C+)33 goto的程序段除了系統(tǒng)跟蹤和架構(gòu)困難外,閱讀也相對復(fù)雜的程序段除了系統(tǒng)跟蹤和架構(gòu)困難外,閱讀也相對復(fù)雜 int a; goto Init; Forward: a = a + 1; Print: coutaendl; goto Down; Init: a = 1; goto Print; Down: if(a100) goto Forward;等價于:等價于: for(int i=1; i=100; +i) coutin;臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)34 練習(xí)練習(xí)4.8.1#include using namespace std;void mai

23、n() for(int i=1; i=10; i+) for(int j=1; j=10-i; j+) cout ; for(int k=1; k=2*i-1; k+) cout #; cout endl; 臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)35 練習(xí)練習(xí)4.8.2#include using namespace std;void main() for(int i=1; i=8; i+) for(int j=1; j=i; j+) cout ; for(int k=1; k=18-i; k+) cout #; cout endl; 臺州學(xué)院計算機系面向?qū)ο蟪绦蛟O(shè)計(C+)36 練習(xí)練習(xí)4.9.1#include #include using namespace std;void main() cout *; for(int i=1; i=9; i+) cout setw(4) i; cout n-n; for(int

溫馨提示

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

最新文檔

評論

0/150

提交評論