




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)程序的三種基本結(jié)構(gòu)條件和選擇(if, switch) 循環(huán)(while, do-while, for)控制和跳轉(zhuǎn)(break, continue, goto)第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu):順序執(zhí)行分支結(jié)構(gòu):按條件選擇性執(zhí)行循環(huán)結(jié)構(gòu):按條件循環(huán)多次執(zhí)行語句體1條件語句體2成立不成立分支結(jié)構(gòu)語句體1語句體2順序結(jié)構(gòu)第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)程序的三種基本結(jié)構(gòu)(退出循環(huán))條件循環(huán)體成立不成立條件循環(huán)體成立不成立循環(huán)結(jié)構(gòu)第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)C+ 提供一些控制結(jié)構(gòu)語句 (control structures) 來
2、實(shí)現(xiàn)順序、分支和循環(huán)執(zhí)行。先介紹一個(gè)新概念:語句塊(block of instructions)。l一個(gè)語句塊是一組互相之間由分號(hào) ; ; 分隔開但整體被花括號(hào) 括起來的語句。l大多數(shù)控制結(jié)構(gòu)允許一個(gè)通用的statement做參數(shù),這個(gè)statement根據(jù)需要可以是一條語句,也可以是一組語句組成的語句塊。如果只需要一條語句做statement,它可以不被括在花括號(hào) () 內(nèi)。但如果我們需要多條語句共同做statement,則必須把它們括在花括號(hào)內(nèi) () 以組成一個(gè)語句塊。第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)程序的三種基本結(jié)構(gòu)條件和選擇(if, switch) 循環(huán)(while, do-while,
3、for)控制和跳轉(zhuǎn)(break, continue, goto)第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)條件( if and else)condition 是一個(gè)將被計(jì)算的表達(dá)式。如果條件(condition)為true,statement 將被執(zhí)行。否則,statement 將被忽略(不被執(zhí)行),程序從整個(gè)條件結(jié)構(gòu)之后的下一條語句繼續(xù)執(zhí)行。例:if (condition) statement當(dāng)變量x存儲(chǔ)的值為100時(shí),輸出x is 100執(zhí)行一條以上的語句,可以用花括號(hào) 將語句括起來組成一個(gè)語句塊。第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)條件( if and else)用關(guān)鍵字else 來指定當(dāng)條件不能被滿足時(shí)需要
4、執(zhí)行的語句多個(gè)if + else if + else 的結(jié)構(gòu)可以連接起來使用ifif (condition) statement1 elseelse statement2題目:輸入題目:輸入一個(gè)正整數(shù)。若該數(shù)為偶數(shù),求立方一個(gè)正整數(shù)。若該數(shù)為偶數(shù),求立方值后輸出;若為奇數(shù),求平方值后輸出值后輸出;若為奇數(shù),求平方值后輸出。#include void main() int a,value; couta; if(a%2=0) value=a*a*a; else value=a*a; coutvalue=valueendl;第第1次執(zhí)行程序:次執(zhí)行程序:第第2次執(zhí)行程序:次執(zhí)行程序:輸入一個(gè)正整數(shù):
5、輸入一個(gè)正整數(shù):4 value=64輸入一個(gè)正整數(shù)輸入一個(gè)正整數(shù): 5 value=25 if_else.cpp#include #include void main() double a, b, c, x1, x2, t; coutabc; t=b*b-4*a*c; if(t0) cout“沒有實(shí)數(shù)根; else if(t=0) x1=-b/(2*a);cout“唯一實(shí)根x=”x1endl; else t=sqrt(t);x1=(-b+t)/(2*a);x2=(-b-t)/(2*a); cout“實(shí)根x1=”x1“, 實(shí)根x2=”x2endl; if_else.cpp嵌套時(shí)else總是與離它
6、最近的且尚未匹配的if相匹配#include #include void main() double a, b, c, x1, x2, t; coutabc; t=b*b-4*a*c; if(t0) cout“沒有實(shí)數(shù)根; else if(t=0) x1=-b/(2*a);cout“x1=”x1endl; else t=sqrt(t);x1=(-b+t)/(2*a);x2=(-b-t)/(2*a); cout“x1=”x1;cout“, x2=”x20)if(ab?a:b)if(m10&m20)if(a+,b+,a+b)各種可能的表達(dá)式:(會(huì)計(jì)算表達(dá)式的值是關(guān)鍵!)第第2章章 控制結(jié)構(gòu)
7、控制結(jié)構(gòu)選擇( switchswitch)計(jì)算表達(dá)式的值,依次與常量1n比較,遇到相等的常量,執(zhí)行其后的語句塊,直到break;如與各常量都不相等,執(zhí)行default后面的語句。default選項(xiàng)是可以不提供的。switch(表達(dá)式) case 常量值1: 語句塊1;break; case 常量值2: 語句塊2 ;break; case 常量值n: 語句塊n;break; default : 語句n+1; No計(jì)算表達(dá)式值常量1常量2常量n選default語句1語句2語句n語句n+1選break選break選break選break=YesYesNoNoNoYesYesYescasecaseca
8、sedefalut第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)選擇( switch)注意注意:switchswitch只能被用來比較表達(dá)式和整數(shù)型常量整數(shù)型常量的值。不能夠把變量或范圍放在case之后,例如 (case (n*2):) 或 (case (1.3):) 都不可以,因?yàn)樗鼈儾皇怯行У某A俊?如果需要檢查范圍或非常量數(shù)值,需使用連續(xù)的if 和else if 語句。第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)選擇( switch)如果語句塊的結(jié)尾沒有breakbreak,程序?qū)⒉粫?huì)執(zhí)行跳轉(zhuǎn)到switchswitch選擇結(jié)構(gòu)的結(jié)尾處 ,而是繼續(xù)執(zhí)行下面的語句塊,直到第一次遇到breakbreak語句或一直執(zhí)行到swit
9、chswitch選擇結(jié)構(gòu)的結(jié)尾。因此,不需要在每一個(gè)case區(qū)域內(nèi)加花括號(hào) 。這個(gè)特點(diǎn)同時(shí)可以幫助實(shí)現(xiàn)對(duì)不同的可能值執(zhí)行相同的語句塊。各case語句塊的先后順序可以變動(dòng),而不會(huì)影響程序執(zhí)行結(jié)果。在case后的各常量表達(dá)式的值不能相同,否則會(huì)出現(xiàn)錯(cuò)誤。#include void main() int x,a,b,c,d; a=b=c=d=0; cinx;switch(x) default : d=1; case 2 : b+; break; case 3 : c+; break; case 1: a+; break; coutabcdendl;P37例2.5switch.cpp#include
10、void main() int x,a,b,c,d; a=b=c=d=0; cinx; switch (x) case 1 : case 2 : cout“小于3”; break; case 3 : cout0 ,后面跟的語句塊將會(huì)被執(zhí)行,直到條件 (n0) 不再滿足(變?yōu)閒alse)。While_test.cpp第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)while循環(huán)必須考慮到循環(huán)必須在某個(gè)點(diǎn)結(jié)束,因此在語句塊之內(nèi)必須提供一些方法使得條件可以在某個(gè)時(shí)刻變?yōu)榧?false,否則循環(huán)將無限重復(fù)下去。這個(gè)例子里,用語句-n;-n;使得循環(huán)在重復(fù)一定的次數(shù)后變?yōu)閒alse :當(dāng) n 變?yōu)?, 倒計(jì)數(shù)結(jié)束。第第2章
11、章 控制結(jié)構(gòu)控制結(jié)構(gòu)while循環(huán)例:假設(shè)在銀行存款1000元,年息為2.25,多少年后,變?yōu)?0萬元?#includevoid main()double x=1000;int i=0;double r=0.0225;while(x=100000)x*=1+r;i+;couti“年endl;While_test.cpp第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)while循環(huán)例:求自然數(shù)100的累加和。# include void main() int i(0), sum(0); while(i=100) sum+=i; i+; /循環(huán)體 coutsum=sumendl;While_test.cpp第第2章章
12、 控制結(jié)構(gòu)控制結(jié)構(gòu)do-while循環(huán)do-while do-while 循環(huán)循環(huán)功能與while 循環(huán)相同,不過,是先執(zhí)行statement 然后才檢查條件condition 這樣,即使條件condition從來沒有被滿足過,statement 仍至少被執(zhí)行一次。do statement while (condition)do while語句屬于直到型循環(huán),直至條件不成立時(shí)結(jié)束循環(huán)。 do while語句先執(zhí)行循環(huán)體,然后再判斷條件。直到型 循環(huán)的循環(huán)體至少執(zhí)行一次。第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)do-while循環(huán)例:重復(fù)輸出用戶輸入的任何數(shù)值,直到用戶輸入0為止。ldo-while 循環(huán)通
13、常被用在判斷循環(huán)結(jié)束的條件是在循環(huán)語句內(nèi)部被決定的情況下。l在本例中在循環(huán)的語句塊內(nèi)用戶的輸入決定了循環(huán)是否結(jié)束。如果用戶永遠(yuǎn)不輸入0,則循環(huán)永遠(yuǎn)不會(huì)結(jié)束。do_while_test.cpp第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)for循環(huán)for for 循環(huán)循環(huán)for (initialization; condition; increase) statement;1.執(zhí)行初始化initialization 。通常它是設(shè)置一個(gè)計(jì)數(shù)器變量的初始值,初始化僅被執(zhí)行一次。2.檢查條件condition ,如果條件為真true,繼續(xù)循環(huán),否則循環(huán)結(jié)束循環(huán)中語句statement 被跳過。3.執(zhí)行語句stateme
14、nt 。像以前一樣,它可以是一個(gè)單獨(dú)的語句,也可以是一個(gè)由花括號(hào) 括起來的語句塊。4.最后增值域(increase field)中的語句被執(zhí)行,循環(huán)返回第2步。注意增值域中可能是任何語句,而不一定只是將計(jì)數(shù)器增加的語句。第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)for循環(huán)例:倒計(jì)數(shù)第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)for循環(huán)初始化initialization 和增值increase 域是可選的(即可以為空)。但這些域?yàn)榭盏臅r(shí)候,它們和其他域之間間隔的分號(hào)不可以省略。例如:lfor (;n10;) 表示沒有初始化和增值語句;lfor (;n10;n+) 表示有增值語句但沒有初始化語句。初始化或增值域中可以放一條以上
15、的語句,中間用逗號(hào) (,)隔開。這個(gè)循環(huán)將被執(zhí)行50 次,如果n 和i 在循還內(nèi)部都不被改變的話#include #include void main( ) char letter; int count(0); cout 大 寫 英 文 字 母 表n; for (letter=A; letter=Z; letter+) coutsetw(5)letter; count+; if (count%6= =0) coutendl; 輸出大寫26個(gè)英文字母,每行打印6個(gè)字母for_test.cpp# include void main() int i; double sum=0; for(i=1; i
16、=100; i+) sum+=1.0/i; coutsum=sumendl;10014131211練習(xí):求# include void main() int i;int t=1; double sum=0; for(i=1; i=100; i+) sum+=1.0/i*t; t=-t; coutsum=sumendl;練習(xí):求10014131211第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)多重循環(huán)多重循環(huán)是在一個(gè)循環(huán)語句的循環(huán)體內(nèi)又包含另一個(gè)循環(huán)語句。上述三種循環(huán)語句既可以自身嵌套,也可以互相嵌套。嵌套時(shí)要注意必須將一個(gè)完整的循環(huán)結(jié)構(gòu)整體放在另一個(gè)循環(huán)體內(nèi)。二重循環(huán)二重循環(huán).for( ) while( )
17、. . .三重循環(huán)三重循環(huán).for( ) . for( ) . for( ) . . .第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)程序的三種基本結(jié)構(gòu)條件和選擇(if, switch) 循環(huán)(while, do-while, for)控制和跳轉(zhuǎn)(break, continue, goto)第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)跳轉(zhuǎn)語句跳轉(zhuǎn)語句跳轉(zhuǎn)語句是輔助性語句,不單獨(dú)使用,一般與選擇語句或循環(huán)語句結(jié)合起來使用,起到控制程序結(jié)構(gòu)的作用。跳轉(zhuǎn)語句包括:lbreak語句lcontinue語句lgoto語句 第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)breakbreak語句語句通過使用breakbreak語句,即使在結(jié)束條件沒有滿足的情況
18、下,也可以跳出一個(gè)循環(huán)。它可以被用來結(jié)束一個(gè)無限循環(huán),或強(qiáng)迫循環(huán)在其自然結(jié)束之前結(jié)束。break_test.cpp第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)break語句語句break 語句,可用于循環(huán)語句,也可用于switch語句第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)continue語句語句continue語句只用于循環(huán)語句,使得程序跳過當(dāng)前循環(huán)中剩下的部分而直接進(jìn)入下一次循環(huán),就好像循環(huán)中語句塊的結(jié)尾已經(jīng)到了使得循環(huán)進(jìn)入下一次重復(fù)。例:倒計(jì)數(shù)時(shí)跳過數(shù)字5的輸出第第2章章 控制結(jié)構(gòu)控制結(jié)構(gòu)goto語句語句goto語句使程序從一點(diǎn)跳轉(zhuǎn)到另外一點(diǎn)。必須謹(jǐn)慎只用這條語句,因?yàn)樗膱?zhí)行可以忽略任何嵌套限制。跳轉(zhuǎn)的目標(biāo)點(diǎn)可以由一個(gè)標(biāo)示符(label)來標(biāo)明,該標(biāo)示符作為goto語句的參數(shù)。一個(gè)標(biāo)示符(label)由一個(gè)標(biāo)識(shí)名稱后面跟一個(gè)冒號(hào) :組成。通常除了底層程序愛好者使用這條語句,它在結(jié)構(gòu)化或面向?qū)ο蟮木幊讨胁⒉怀S?。第?章章 控制結(jié)構(gòu)控制結(jié)構(gòu)#include voi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水利水電工程環(huán)保技術(shù)應(yīng)用試題及答案
- 研究方法設(shè)計(jì)與實(shí)施路徑
- 工程經(jīng)濟(jì)的政策影響與建議試題及答案
- 水利水電工程對(duì)氣候變化的適應(yīng)策略試題及答案
- 管理技巧的2025年中級(jí)經(jīng)濟(jì)師試題及答案
- 病毒性心肌炎健康教育
- 行政管理經(jīng)濟(jì)法復(fù)習(xí)知識(shí)檢驗(yàn)試題及答案
- 危險(xiǎn)的小圓珠健康風(fēng)險(xiǎn)解析
- 2025年工程經(jīng)濟(jì)項(xiàng)目融資設(shè)計(jì)試題及答案
- 深海潛水旅游活動(dòng)安全與責(zé)任告知合同
- 市政道路工程施工組織設(shè)計(jì)方案
- 醫(yī)療護(hù)理與人文關(guān)懷課件
- 用地理知識(shí)介紹美國
- 2024-2025年高考生物一輪復(fù)習(xí)知識(shí)點(diǎn)講解專題3-2細(xì)胞呼吸含解析
- 《生物制品連續(xù)制造指南》
- 湖北荊州市監(jiān)利市暢惠交通投資有限公司招聘筆試沖刺題2024
- 食品配送行業(yè)安全生產(chǎn)管理制度
- 土力學(xué)知到智慧樹章節(jié)測(cè)試課后答案2024年秋青島理工大學(xué)
- 手術(shù)室護(hù)理疑難病例討論
- 國家秘密載體的管理要求
- 硫酸安全使用管理及使用制度(4篇)
評(píng)論
0/150
提交評(píng)論