面向?qū)ο蟪绦蛟O(shè)計C++第3章--控制結(jié)構(gòu)_第1頁
面向?qū)ο蟪绦蛟O(shè)計C++第3章--控制結(jié)構(gòu)_第2頁
面向?qū)ο蟪绦蛟O(shè)計C++第3章--控制結(jié)構(gòu)_第3頁
面向?qū)ο蟪绦蛟O(shè)計C++第3章--控制結(jié)構(gòu)_第4頁
面向?qū)ο蟪绦蛟O(shè)計C++第3章--控制結(jié)構(gòu)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué)習(xí)目標(biāo) 掌握選擇結(jié)構(gòu)的條件構(gòu)成 熟練掌握選擇結(jié)構(gòu)設(shè)計方法 熟練掌握循環(huán)結(jié)構(gòu)設(shè)計方法 掌握控制轉(zhuǎn)移語句的使用方法3.1 選擇結(jié)構(gòu)3.1.1 if語句if語句有三種基本形式。1. 單分支if語句格式: if(表達(dá)式) 語句;功能:如果表達(dá)式的值為“真”(非0),則執(zhí)行語句;否則不執(zhí)行該語句。其流程圖如圖3-1所示。3.1 選擇結(jié)構(gòu)2. 雙分支if語句格式: if(表達(dá)式) 語句1; else 語句2;功能:如果表達(dá)式的值為“真”(非0),則執(zhí)行語句1;否則執(zhí)行語句2。其流程圖如圖3-2所示。3.1 選擇結(jié)構(gòu)3多分支if 語句格式: if(表達(dá)式1) 語句1 else if(表達(dá)式2)語句2 el

2、se if(表達(dá)式n)語句n else 語句n+1功能: 依此判斷表達(dá)式的值,當(dāng)出現(xiàn)某個值為真時,則執(zhí)行其對應(yīng)的語句,然后跳到整個if語句之外繼續(xù)執(zhí)行程序。如果所有的表達(dá)式均為假,則執(zhí)行語句n+1, 然后繼續(xù)執(zhí)行后續(xù)程序。如圖3-3所示。3.1 選擇結(jié)構(gòu)3多分支if 語句3.1 選擇結(jié)構(gòu)4使用if語句的注意事項(1) if后面的表達(dá)式必須用圓括號括起來。(2) 每個表達(dá)式后面的語句如果不止一條語句時,必須用一對花括號“”括起來組成復(fù)合語句;否則只能執(zhí)行前面的一條語句。例如:if(ab)a+;b+else a=0;b=1;(3) 表達(dá)式可以是任意類型的C+語言合法表達(dá)式,除常見的算術(shù)表達(dá)式、關(guān)系

3、表達(dá)式或邏輯表達(dá)式外,也可以是其它表達(dá)式,如賦值表達(dá)式,甚至也可以是一個變量。例如:if(a=4); /賦值表達(dá)式if(a); /是一個變量3.1 選擇結(jié)構(gòu)3.1.2 if 語句的嵌套所謂if 語句的嵌套,就是在if語句中又包含了一個或多個if語句。在if語句中可根據(jù)需要,用if語句的三種形式進(jìn)行互相嵌套。一般形式如下:1 嵌套在if子句中if ( 條件 ) if 語句 else 語句2;2 嵌套在else子句中if ( 條件) 語句1;else if語句 3.1 選擇結(jié)構(gòu)3.1.3 switch語句switch 語句是一個多分支結(jié)構(gòu)的語句,它所實現(xiàn)功能與多分支if語句很相似,但在大多數(shù)情況下

4、,switch語句表達(dá)方式更直觀、簡單、有效。1. switch語句的語法格式switch () case :;break; case :;break; case :;break; default:;break;3.1 選擇結(jié)構(gòu)2switch語句執(zhí)行過程switch語句執(zhí)行過程可以用圖3-4表示。(1) 首先計算switch后的表達(dá)式的值。(2) 然后將結(jié)果值與case后的常量表達(dá)式值比較,如果找到相匹配的case,程序就執(zhí)行相應(yīng)的語句序列,直到遇到break語句,switch語句執(zhí)行結(jié)束;如果找不到匹配的case,就歸結(jié)到default處,執(zhí)行它的語句序列,直到遇到break語句為止;如果沒

5、有default,則不執(zhí)行任何操作。3.1 選擇結(jié)構(gòu)3. 使用switch語句的注意事項(1) switch后面的“表達(dá)式”和“常量表達(dá)式”必須是整數(shù)類型或枚舉類型,如int、char、sbyte、ushort、short、uint、int、ulong、long。(2) case后的“常量表達(dá)式”必須互異,不能有重復(fù),其中default和可以省略。(3) switch語句中的case和default的出現(xiàn)次序是任意的,且case的次序不要求按常量表達(dá)式的大小順序排列。(4) case后面的常量表達(dá)式僅起語句標(biāo)號作用,必須在運行前就是確定的,不能改變的。系統(tǒng)一旦找到入口標(biāo)號,就從此標(biāo)號開始執(zhí)行,

6、不再進(jìn)行標(biāo)號判斷,所以必須加上break語句,以便結(jié)束switch語句。(5) 多個case的后面可以共用一組執(zhí)行語句,也能執(zhí)行多個case后面的。3.2 循環(huán)語句循環(huán)語句是指在一定條件下,重復(fù)執(zhí)行一組語句,它是程序設(shè)計中的一個非常重要也是非?;镜姆椒ā+提供了3種循環(huán)語句,while,do-while和for。3.2.1 while語句語法形式:while() 如果表達(dá)式為真(true),則執(zhí)行循環(huán)體語句。然后重新計算表達(dá)式的值,并再次判斷;如此反復(fù),直到表達(dá)式的值為假(false),則退出循環(huán)結(jié)構(gòu)。While語句執(zhí)行流程如圖3-5(a)所示。3.2 循環(huán)語句圖3-5 while語句示意

7、圖3.2 循環(huán)語句【例3.6】 利用while語句,計算1+2+100的值,并輸出計算結(jié)果。#include iostream.hvoid main( )int Sum,i;Sum = 0; i = 1;while (i = 100)Sum += i;i+;coutSum is Sumendl;圖3-5(b)是程序執(zhí)行的示意圖。3.2 循環(huán)語句3.2.2 do-while語句語法形式:do while();先執(zhí)行循環(huán)體語句,再判定表達(dá)式。若表達(dá)式的值為非0,則再次執(zhí)行循環(huán)體語句,如此反復(fù),直到表達(dá)式的值為0結(jié)束循環(huán),并轉(zhuǎn)到下一條語句執(zhí)行,如圖所示。圖3-6 do-while語句示意圖3.2 循

8、環(huán)語句3.2.3 for 語句C+的for循環(huán)是循環(huán)語句中最具特色的。它功能較強、靈活多變和使用廣泛。語法形式: for(;) for循環(huán)語句的執(zhí)行流程如圖3-7所示。3.2 循環(huán)語句for循環(huán)的一些變化特點: (1)for循環(huán)語句的“初始表達(dá)式”和“變量增值表達(dá)式”可引入逗號運算符“,”,這樣可以對若干個變量賦初值或增值。 (2) for循環(huán)的三個表達(dá)式可以任意缺省,如果“條件”缺省就約定它的值是true。但不管哪個表達(dá)式缺省,其相應(yīng)的分號“;”不能缺省。 (3)可以在for循環(huán)內(nèi)部聲明循環(huán)控制變量。3.2 循環(huán)語句3.2.4 循環(huán)的嵌套一個循環(huán)的循環(huán)體內(nèi)包含另外一個循環(huán)語句稱為循環(huán)的嵌套。

9、如圖3-8是一個循環(huán)嵌套的例子。循環(huán)嵌套時,外層循環(huán)執(zhí)行一次,內(nèi)層循環(huán)從頭到尾執(zhí)行一遍。3種循環(huán)語句不僅可以自身嵌套,而且還可以互相嵌套。3.3 break、continue和goto語句3.3.1 break與continue 語句 一般格式: break; continue;功 能:(1) break: 強行結(jié)束循環(huán),轉(zhuǎn)向執(zhí)行循環(huán)語句的下一條語句。(2) continue: 結(jié)束本次循環(huán)。對于while和do-while循環(huán),跳過循環(huán)體其余語句,轉(zhuǎn)向循環(huán)終止條件的判斷;而對for循環(huán),跳過循環(huán)體其余語句,轉(zhuǎn)向循環(huán)變量增值量表達(dá)式的計算,如圖3-11所示。3.3 break、continue

10、和goto語句3.3.1 break與continue 語句 3.3 break、continue和goto語句3.3.2 goto 語句和標(biāo)號語句格式: goto ;功能:goto語句是無條件轉(zhuǎn)移語句,程序執(zhí)行到goto語句時,無條件地轉(zhuǎn)移到所指定的語句并執(zhí)行。 3.4 情景應(yīng)用訓(xùn)練項目3.4.1 項目1:愛因斯坦階梯問題【問題描述】愛因斯坦階梯問題:有一條長長的階梯,如果你每步跨2階,那么最后剩1階;如果你每步跨3階,那么最后剩2階;如果你每步跨5階,那么最后剩4階;如果你每步跨6階,那么最后剩5階;只有當(dāng)你每步跨7階時,最后才正好走完,一階也不剩。請問這條階梯至少有多少階(求所有3位階梯數(shù))?程序運行效果如圖3-12所示。圖3-12 階梯問題3.4 情景應(yīng)用訓(xùn)練項目3.4.2 項目2:趣味古典數(shù)學(xué)問題 【項目描述】有一對兔子,從出生后第3個月起每個月都生一對兔子。小兔子長大到第3個月后每個月又生一對兔子。假設(shè)所有的兔子都不死亡,問每個月的兔子總對數(shù)為多少?程序運行效果如圖3-13所示。圖3-13 趣味古典數(shù)學(xué)3.4 情景應(yīng)用訓(xùn)練項目3.4.3 項目3:數(shù)學(xué)家維納(N.Wiener)年齡問題【項目描述】美國數(shù)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論