![結(jié)構(gòu)化程序相關(guān)設(shè)計_第1頁](http://file4.renrendoc.com/view/d43ae8e549e400fd41e470c891a7cabd/d43ae8e549e400fd41e470c891a7cabd1.gif)
![結(jié)構(gòu)化程序相關(guān)設(shè)計_第2頁](http://file4.renrendoc.com/view/d43ae8e549e400fd41e470c891a7cabd/d43ae8e549e400fd41e470c891a7cabd2.gif)
![結(jié)構(gòu)化程序相關(guān)設(shè)計_第3頁](http://file4.renrendoc.com/view/d43ae8e549e400fd41e470c891a7cabd/d43ae8e549e400fd41e470c891a7cabd3.gif)
![結(jié)構(gòu)化程序相關(guān)設(shè)計_第4頁](http://file4.renrendoc.com/view/d43ae8e549e400fd41e470c891a7cabd/d43ae8e549e400fd41e470c891a7cabd4.gif)
![結(jié)構(gòu)化程序相關(guān)設(shè)計_第5頁](http://file4.renrendoc.com/view/d43ae8e549e400fd41e470c891a7cabd/d43ae8e549e400fd41e470c891a7cabd5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、本章導(dǎo)讀 本章從實例分析著手,使讀者了解并掌握C語言三種基本流程控制結(jié)構(gòu):順序、選擇、循環(huán)結(jié)構(gòu) ,加深對C語言程序開發(fā)設(shè)計過程的感性認識,強化培養(yǎng)編程思路,為進一步進行C語言程序設(shè)計打下基礎(chǔ)。 C語言程序設(shè)計 環(huán)境)返回本書目錄第3章 結(jié)構(gòu)化程序設(shè)計本章主要知識點 (1) 順序結(jié)構(gòu)及程序設(shè)計。 (2)選擇結(jié)構(gòu)及程序設(shè)計。 (3)循環(huán)結(jié)構(gòu)及程序設(shè)計。 (4)結(jié)構(gòu)化程序設(shè)計方法、編程思路與綜合實訓(xùn)第3章 結(jié)構(gòu)化程序設(shè)計 C語言程序設(shè)計 環(huán)境)返回本章導(dǎo)讀3.2 選擇結(jié)構(gòu)程序設(shè)計3.3 循環(huán)結(jié)構(gòu)程序設(shè)計3.4 結(jié)構(gòu)化程序設(shè)計方法與綜合實訓(xùn)3.1 順序結(jié)構(gòu)程序設(shè)計 C語言程序設(shè)計 環(huán)境)返回本章目錄3
2、.1.2 順序結(jié)構(gòu)語句3.1.3 程序?qū)嵱?xùn)3.1.1 順序結(jié)構(gòu)的C程序?qū)嵗?.1 順序結(jié)構(gòu)程序設(shè)計3.1.1 C程序?qū)嵗?C語言程序設(shè)計 環(huán)境)返回本節(jié)目錄C程序?qū)嵗纠?.1】編程實現(xiàn):輸入一個長方形的二邊長,求長方形的面積并輸出。/*程序名為。*/#include stdio.h main() float a,b,s; scanf(%f%f,&a,&b); s=a*b;printf(The area of rectangle is %5.2f .n,s); 返回本節(jié)目錄程序運行情況如下:輸入:3.0 4.0 輸出:The area of rectangle is 12.00 .這個程序?qū)儆?/p>
3、順序結(jié)構(gòu),程序是按照書寫的順序自上而下一步步執(zhí)行,程序中的每一條語句都被執(zhí)行一次,且僅能被執(zhí)行一次。【例3.1】編程 C語言程序設(shè)計 環(huán)境)3.1.2 順序結(jié)構(gòu)語句1 C語言程序設(shè)計 環(huán)境)C語言的順序結(jié)構(gòu)語句可以分為四大類:1.表達式語句表達式的后面加一個分號就構(gòu)成了一個語句,例如:sum=a+b; 。事實上,C語言中有使用價值的表達式語句主要有3種:(1)賦值語句。 例如: sum=a+b; (2)自動增1、減1運算符構(gòu)成的表達式語句。例如: i+;(3)逗號表達式語句。例: x=1,y=2;2.空語句語句僅有一個分號“;”,它表示什么也不做。一般和后面章節(jié)所講循環(huán)語句結(jié)合使用起到延時作用
4、。3. 復(fù)合語句由和把一些變量定義和執(zhí)行語句組合在一起,稱之為復(fù)合語句,又稱語句塊。復(fù)合語句的語句形式如下:語句1;語句2;語句n;返回本節(jié)目錄返回本節(jié)目錄例如:int a=0,b=1,sum;sum=a+b;printf(%d,sum);【注意】與C語言中的其他語句不同,復(fù)合語句不以分號作為結(jié)束符,若復(fù)合語句的后面出現(xiàn)分號,那不是該復(fù)合語句的組成成分,而是單獨的一個空語句。在復(fù)合語句起始部分可以有變量定義,如:int a=0,b=1,sum;,也可以沒有。復(fù)合語句的內(nèi)可能會有多個語句,但在語法上把它整體上視為一條語句看待。4.函數(shù)調(diào)用語句由一個函數(shù)調(diào)用加上一個分號組成一個語句,如: scan
5、f(%d%d,&a,&b); printf(a=%d,b=%dn,a,b);3.1.2 順序結(jié)構(gòu)語句2 C語言程序設(shè)計 環(huán)境) C語言程序設(shè)計 環(huán)境)C程序?qū)嵗纠?.2】由鍵盤輸入兩個整數(shù)給變量a和b,然后輸出a和b,在交換a和b中的值后,再輸出a和b,驗證兩個變量中的數(shù)值是否正確地進行了交換。 /*程序名為。*/ #include stdio.h main() int a,b,t; printf(Enter a and b:n); scanf(%d%d,&a,&b);printf(a=%d,b=%dn,a,b); t=a;a=b;b=t; printf(a=%d,b=%dn,a,b); 程
6、序運行情況如下:Enter a and b: 123 456 a=123,b=456 a=456,b=123 返回本節(jié)目錄3.1.3 程序?qū)嵱?xùn)【例3.2】返回本節(jié)目錄注意:在程序中交換兩個變量a 和b的值,不可以簡單地用: a=b;b=a;兩條語句來實現(xiàn)。假設(shè)a 和b的值分別為23和78,賦值語句a=b;將使a的值變?yōu)?8,接下來的b=a;使b的值變?yōu)?8,這樣,a和b的值最終都變?yōu)?8。所以在本例中引入了中間變量t,用來臨時存放a的值,這樣才能完成變量a和b的正確交換?!纠?. 3】輸入一個double類型的數(shù),使該數(shù)保留小數(shù)點后兩位,對第三位小數(shù)進行四舍五入處理,然后輸出此數(shù),以便驗證處理
7、是否正確。/*程序名為。*/#include stdio.h main() double x; printf(Input x:n); scanf(%lf,&x); 3.1.3 程序?qū)嵱?xùn)【例3.3】 C語言程序設(shè)計 環(huán)境)3.1.3 程序?qū)嵱?xùn)【例3. 3】 C語言程序設(shè)計 環(huán)境)返回本節(jié)目錄printf(1) x=%fn,x); /*將x輸出*/ x=x*100; x=x+0.5; x=(int)x; x=x/100; /*將x擴大100倍,加上之后取整,再縮小100倍*/ printf(2) x=%fn,x); /*將四舍五入后的x輸出*/ 程序運行情況如下:Input x:3.14159則輸
8、出的結(jié)果為:3.1.3 程序?qū)嵱?xùn)【例3.4】 C語言程序設(shè)計 環(huán)境)返回本節(jié)目錄【例3.4】從鍵盤上輸入一大寫英文字母,要求改用相應(yīng)的小寫字母輸出。/*程序名為。*/#include stdio.h main() char c1,c2; scanf(%c,&c1); printf(The upper case is %c .n,c1); c2=c1+a-A; printf(The lower case is %c .n,c2); 程序運行時:輸入:B輸出:The upper case is B . The lower case is b .3.2 選擇結(jié)構(gòu)程序設(shè)計 C語言程序設(shè)計 環(huán)境)3.2
9、.1 選擇結(jié)構(gòu)的C程序?qū)嵗?.2.2 if 語句3.2.3 switch 語句3.2.4 程序?qū)嵱?xùn) 返回本章目錄3.2.1 選擇結(jié)構(gòu)的 C程序?qū)嵗?C語言程序設(shè)計 環(huán)境)返回本節(jié)目錄 【例3.5】請輸入兩個整數(shù)a,b,比較a+b和ab哪個大,輸出判斷結(jié)果。 /*程序名為。*/ #include stdio.h main() int a,b,s1,s2; printf(請輸入兩個整數(shù)a,b:); scanf(%d,%d,&a,&b); s1=a+b; s2=a*b; /*求兩個數(shù)的和、積*/ if(s1s2) printf(a+b)(a*b) /n); /*語句A*/ else printf(
10、(a+b)=(a*b)n); /*語句B*/ C語言程序設(shè)計 環(huán)境)運行結(jié)果為: 請輸入兩個整數(shù)a,b:2,3 (a+b)s2,則執(zhí)行語句A(跳過語句B不執(zhí)行),否則,就跳過語句A執(zhí)行語句B??梢奿f語句在程序中起到了改變語句執(zhí)行順序的作用。if語句就是我們在下一節(jié)中要介紹的條件分支語句。3.2.1 選擇結(jié)構(gòu)的 C程序?qū)嵗Y(jié)果 返回本節(jié)目錄 if 語句 C語言程序設(shè)計 環(huán)境). if語句的一般形式返回本節(jié)目錄2. if-else中的復(fù)合語句3. 非關(guān)系、非邏輯表達式構(gòu)成的條件表達式4. if語句的嵌套. if語句的一般形式1 C語言程序設(shè)計 環(huán)境) 1if語句的一般形式:if語句有兩種形式:
11、(1)不含else子句的if語句語句形式如下:if() 例如if(ab)t=a;a=b;b=t;其中,if是C語言的關(guān)鍵字,表達式兩側(cè)的圓括號不可少,最后是一條語句,稱為if子句。如果在if子句中需要多個語句,則應(yīng)該使用花括號把一組語句括起來組成復(fù)合語句,這樣在語法上仍滿足一條語句的要求。執(zhí)行過程:首先計算緊跟在if后面一對圓括號中的表達式的值,如果該表達式的值為非零(“真”),則執(zhí)行其后的if子句,然后去執(zhí)行if語句后的下一個語句。如果該表達式的值為零(“假”),則跳過if子句,直接執(zhí)行if語句后的下一個語句。返回目錄. if語句的一般形式2 C語言程序設(shè)計 環(huán)境) (2)含else子句的i
12、f語句語句形式如下:if() else執(zhí)行過程:首先計算的值,如果該表達式的值為非零(真),則執(zhí)行,如果該表達式的值為零(假),則跳過,直接執(zhí)行,兩者執(zhí)行其一后再去執(zhí)行if語句后的下一個語句。返回目錄 C語言程序設(shè)計 環(huán)境). if語句的一般形式實例【例3.6】求分段函數(shù)的值,如果x0, y=2x+1,否則, y=0 。#include stdio.hmain() /*程序名為。*/ int x,y; /*變量y存放f(x)的值*/ printf(請輸入x的值:); scanf(%d,&x); if(x=0) y=2*x+1; else y=0; printf(當(dāng)x=%d時,f(x)=%d,x
13、,y); 返回目錄. if語句的一般形式實例 C語言程序設(shè)計 環(huán)境)運行結(jié)果: 請輸入x的值:3 當(dāng)x=3時,f(x)=7因為輸入x=3,那么x=0為真,所以輸出2*3+1=7。C語言中有一種特有的條件運算符“?:”,我們在前面章節(jié)已作介紹,它在某種程序上可以起到邏輯判斷的作用。本例中的if語句也可用條件運算符表達式實現(xiàn)如下:y=x=0?2*x+1:0; 但有些判斷不能用條件表達式完成,或者很繁瑣、表達不清晰。返回目錄2. if-else中的復(fù)合語句 C語言程序設(shè)計 環(huán)境)2. if-else中的復(fù)合語句 如果兩個分支中需要執(zhí)行的語句不止一條,必須用“”括起來,作為一個復(fù)合語句使用。若只是一條
14、語句,“”可以省略?!咀⒁狻?1)if后面的一定要有括號;(2)if和else同屬于一個if語句,else不能作為語句單獨使用,它只是if語句的一部分,與if配對使用,因此程序中不可以沒有if而只有else;(3)只能執(zhí)行與if有關(guān)的語句或者執(zhí)行與else有關(guān)的語句,而不可能同時執(zhí)行兩者;(4)如果和是非復(fù)合語句,那么該語句一定要以分號結(jié)束, (5)if語句的表達式可以是任意類型的C語言的合法的表達式,但計算結(jié)果必須為整型、字符型或浮點型之一。返回目錄3.非關(guān)系、非邏輯表達式構(gòu)成的條件表達式1 C語言程序設(shè)計 環(huán)境)3.非關(guān)系、非邏輯表達式構(gòu)成的條件表達式 【例3.10】以賦值表達式為分支條件
15、的實例。 /*程序名為。*/ #includestdio.h main() int s; if(s=2) printf(hello); else printf(error); if后面圓括號中的表示分支條件的類型不限于邏輯/關(guān)系表達式,可以是任意的C語言有效表達式(如賦值表達式,算術(shù)表達式等等),因此也可以是作為表達式特例的常量或變量。返回目錄 C語言程序設(shè)計 環(huán)境)3.非關(guān)系、非邏輯表達式構(gòu)成的條件表達式2【例3.10】中的條件表達式是一個賦值表達式,并不是判斷s是否等于2。相當(dāng)于if(2)printf(hello);,這是合法的。由于該條件表達式的值是非零值,恒為真,故本程序的printf
16、(error);無論如何都不會被執(zhí)行。if語句最終執(zhí)行哪一個分支,取決于條件表達式的計算結(jié)果。同一個條件的也可以用多種表達方式?!纠?.11】以變量為分支條件的實例。 /*程序名為。*/#include stdio.h main() int x,y; scanf(%d,&x); if(x) y=1; else y=-1; 返回目錄3.非關(guān)系、非邏輯表達式構(gòu)成的條件表達式3 C語言程序設(shè)計 環(huán)境)printf(y=%dn,y); 現(xiàn)把程序中if(x)改成if(x!=0),此時雖然條件表達式寫法不同,但是完成的功能是相同的。下面兩種表示方法經(jīng)常使用:if(x)等價于if(x!=0)if(!x)等價
17、于if(x=0)返回目錄4. if語句的嵌套1 C語言程序設(shè)計 環(huán)境) 在一個if語句中又包含另一個if語句,從而構(gòu)成了if語句的嵌套使用。內(nèi)嵌的if語句既可以嵌套在if子句中,也可以嵌套在else子句中。例如: 【例3.12】輸入a,b兩個整數(shù)的值,比較大小并輸出結(jié)果。#include stdio.h“ /*程序名為。*/ main() int a,b; printf(請輸入a,b:) ; scanf(%d%d,&a,&b); if(ab) printf(abn); else if(ab) printf(ay) if(zx) max=z; else if(yx) max=y; printf(
18、 max=%d,max); 運行結(jié)果: max=4返回目錄4. if語句的嵌套實例2 C語言程序設(shè)計 環(huán)境) 【例3.14】編寫程序,根據(jù)輸入的學(xué)生成績,給出相應(yīng)的等級。90分以上的等級為A,60分以下的等級為E,其余每10分一個等級。程序如下:#includestdio.h main() /*程序名為。*/ int g; printf(input g:); scanf(%d,&g); printf(g=%d: ,g); if(g=90) printf(An); else if(g=80) printf(Bn); else if(g=70) printf(Cn); else if(g=60)
19、printf(Dn); else printf(En); 返回目錄4. if語句的嵌套實例3 C語言程序設(shè)計 環(huán)境)當(dāng)執(zhí)行以上程序時,首先輸入、輸出學(xué)生的成績,然后進入if語句; if語句中的表達式將依次對學(xué)生成績進行判斷,若能使某 if 后的表達式值為1,則執(zhí)行與其相應(yīng)的子句,之后便退出整個if結(jié)構(gòu)。例如,若輸入的成績?yōu)?8分,首先輸出: g=78 : ,當(dāng)從上至下逐一檢測時,使g=70這一表達式的值為1,因此在輸出g=78 :之后再輸出C,便退出整個if結(jié)構(gòu)。若輸入的成績?yōu)?0分,首先輸出相應(yīng)成績g=30:,其次進入相應(yīng)判斷,最后再輸出相應(yīng)等級E,便退出整個if結(jié)構(gòu)。返回目錄3.2.3 s
20、witch 語句 C語言程序設(shè)計 環(huán)境). switch語句的一般形式返回本節(jié)目錄2. switch語句的執(zhí)行過程3. switch語句的實例1 . switch語句的一般形式 C語言程序設(shè)計 環(huán)境)1. switch語句的一般形式switch語句的一般形式是:switch() case : case : case : default: 【說明】:switch語句是關(guān)鍵字,其后面大括號里括起來的部分稱為 switch語句體。要特別注意必須寫這一對大括號。switch后的運算結(jié)果可以是整型、字符型或枚舉型表達式等,兩邊的括號不能省略。返回目錄 C語言程序設(shè)計 環(huán)境)case也是關(guān)鍵字,與其后面合
21、稱為case語句標(biāo)號。的值在運行前必須是確定的,不能改變,因此不能是包含變量的表達式,而且數(shù)據(jù)類型必須與一致。如: int x=3,y=7, z; switch(z) case 1+2: /*是正確的*/ case x+y: /*是錯誤的*/ case和常量之間要有空格,case后面的常量之后有:。default也是關(guān)鍵字,起標(biāo)號的作用。代表所有case標(biāo)號之外的那些標(biāo)號。default可以出現(xiàn)在語句體中任何標(biāo)號位置上。在switch語句體中也可以無default標(biāo)號。、等,可以是一條語句,也可以是若干語句。必要時,case 語句標(biāo)號后的語句可以不寫。1 . switch語句的一般形式返回目錄
22、2 . switch語句的執(zhí)行過程 C語言程序設(shè)計 環(huán)境)2. switch語句的執(zhí)行過程首先計算的值,然后在switch語句體內(nèi)尋找與該吻合的case標(biāo)號,如果有與該值相等的標(biāo)號,則執(zhí)行從該標(biāo)號后開始的各語句,包括在其后的所有case和default語句,直到switch語句體結(jié)束。如果沒有與該值相等的標(biāo)號,并且存在default標(biāo)號,則從default標(biāo)號后的語句開始執(zhí)行,直到switch語句體結(jié)束。如果沒有與該值相等的標(biāo)號,并且不存在default標(biāo)號,則跳過switch語句體,什么也不執(zhí)行。在switch語句中使用break語句break語句也稱間斷語句??梢栽诟鱾€case之后的語句最
23、后加上break語句,每當(dāng)執(zhí)行到break語句時,立即跳出switch語句體。switch語句通??偸呛蚥reak語句聯(lián)合使用,使得switch語句真正起到多個分支的作用。返回目錄3 . switch語句的實例 C語言程序設(shè)計 環(huán)境)3. switch語句的實例【例3.17】模擬自動飲料機。按屏幕所示功能,輸入所選擇的合法數(shù)字,輸出可獲得的相應(yīng)飲料名稱。程序如下: /*程序名為。*/#include stdio.hmain() int button; printf(=自動飲料機 =n); printf(1.可口可樂n); printf(2.雪碧n); printf(3.芬達n); printf
24、(4.百事可樂n); printf(5.非??蓸穘); printf(請按1-5鍵選擇飲料:n); scanf(%d,&button); 返回目錄3 . switch語句的實例 C語言程序設(shè)計 環(huán)境)switch(button) case 1:printf(n你獲得一聽可口可樂n);break; case 2:printf(n你獲得一聽雪碧n);break; case 3:printf(n你獲得一聽芬達n);break; case 4:printf(n你獲得一聽百事可樂n);break; case 5:printf(n你獲得一聽非??蓸穘);break; default:printf(n非法操
25、作!n);break; 運行結(jié)果:=自動飲料機=1.可口可樂2.雪碧3.芬達4.百事可樂5.非??蓸氛埌?-5按鈕選擇飲料:3你獲得一聽芬達返回目錄 C語言程序設(shè)計 環(huán)境)返回本章目錄3.3.2 while語句3.3.3 do-while語句3.3.1 循環(huán)結(jié)構(gòu)的C程序?qū)嵗?.3 循環(huán)結(jié)構(gòu)程序設(shè)計3.3.4 for 語句3.3.5 循環(huán)的嵌套3.3.6 break語句和continue語句3.3.7 程序?qū)嵱?xùn)3.3.1 循環(huán)結(jié)構(gòu)的C程序?qū)嵗?C語言程序設(shè)計 環(huán)境)【例3.19】有一張厚度為毫米的紙,假設(shè)它足夠大,重復(fù)將其對折,問對折多少次之后,其厚度可以抵達(再對折一次就超過)珠穆朗瑪峰的高度
26、?程序如下: main() /*程序名為。*/ double h=0.1; int n=0; /* n用來累計對折次數(shù)*/ while(h=8848180) h=h*2; n=n+1; printf(對折次數(shù)為:%d,此時厚度:%.2fn,n-1,h/2); 重復(fù)對折一張紙,實質(zhì)就是厚度乘以2,次數(shù)加1。用順序結(jié)構(gòu)編程為:h=h*2; n=n+1; 這樣的語句一直重復(fù)寫到h滿足題目要求為止。實際中這類問題,就可用循環(huán)結(jié)構(gòu)編程實現(xiàn)。本例中,使用的是循環(huán)結(jié)構(gòu)中的while語句。C語言共有三種類型的循環(huán)語句,while、do-while和for語句。返回本節(jié)目錄3.3.2 while語句 C語言程序
27、設(shè)計 環(huán)境)返回本節(jié)目錄1.while語句的一般形式while()說明:while語句是C的關(guān)鍵字,其后面的一對括號中的,可以是C語言的任意合法表達式,由它來控制循環(huán)體語句是否執(zhí)行,括號不能省略??梢允且粭l語句,也可以是多條語句,一般來說循環(huán)體是一條語句時不用加,如果是多條語句,就一定要加 構(gòu)成復(fù)合語句。其中的語句可以是空語句、表達式語句或作為循環(huán)體一部分的復(fù)合語句,如果循環(huán)體是一個空語句,表示不執(zhí)行任何操作(一般用于延時)。(1)計算while后一對括號中的的值。當(dāng)值為非零時,則執(zhí)行步驟(2);當(dāng)值為零時,則執(zhí)行步驟(3)。(2)執(zhí)行后,轉(zhuǎn)去執(zhí)行步驟(1)。(3)退出while循環(huán)。2.wh
28、ile語句的執(zhí)行過程while語句實例 C語言程序設(shè)計 環(huán)境)語句實例 例3.21】用while循環(huán)語句實現(xiàn)從1加到100,并將結(jié)果打印出來。 /*程序名為。*/#include stdio.hmain() / *若sum的值超過int型變量能表示的范圍,則設(shè)置成長整型*/ int sum=0,i=1; while(i=100) sum+=i; i+; printf(其和是 %dn,sum); /*若sum為長整型,則相應(yīng)的輸出也設(shè)置成長整型ld*/ 運行結(jié)果:其和是5050返回本節(jié)目錄 do while();說明:do是C語言的關(guān)鍵字,必須和while聯(lián)合使用。do-while循環(huán)由do開始
29、,用while結(jié)束;注意,在while結(jié)束后必須有分號,它表示該語句的結(jié)束。其它同while循環(huán)語句。3.3.3 do-while語句 C語言程序設(shè)計 環(huán)境)1.do-while語句的一般形式返回本節(jié)目錄2.do-while語句的執(zhí)行過程(1)執(zhí)行do后面的。 (2)計算while后一對括號中的的值。當(dāng)值為非零時,轉(zhuǎn)去執(zhí)行步驟(1)。當(dāng)值為零時,則執(zhí)行步驟(3)。 (3)退出while循環(huán)。運行結(jié)果:其和是5050在本例中,循環(huán)條件和循環(huán)體以及得到的結(jié)果都是和while循環(huán)一樣的,只是用do-while語句來實現(xiàn)。do-while語句實例 C語言程序設(shè)計 環(huán)境)語句實例 【例3.23】用do-
30、while語句實現(xiàn)求1+2+100的和。#include stdio.h /*程序名為。*/main() int sum=0,i=1; / *若sum的值超過int型變量能表示的范圍,則設(shè)置成長整型*/ do sum+=i; i+; while(i=100); printf(其和是 %dn,sum); /*若sum為長整型,則相應(yīng)的輸出也設(shè)置成長整型ld*/ 返回本節(jié)目錄3.3.4 for 語句 C語言程序設(shè)計 環(huán)境)for語句是C語言提供的一種在功能上比前面兩種循環(huán)語句更強的一種循環(huán)語句。for循環(huán)語句格式如下:for(;)說明:for是C語言的關(guān)鍵字,三個表達式之間的必須用分號;隔開。三個
31、表達式可以是任意形式的C表達式,通常主要用于for循環(huán)的控制。一般用于計算循環(huán)變量初始值,為循環(huán)體是否執(zhí)行的條件,為循環(huán)變量的調(diào)整。的使用同while、do-while循環(huán)語句。for循環(huán)語句的格式還可以表示為:for(;)在某種情況下,用for語句表示循環(huán),顯得緊湊而清晰。尤其是它能利用自動地使循環(huán)變量發(fā)生改變,不像while結(jié)構(gòu)那樣要在循環(huán)體中設(shè)置修正操作。實際上,for語句中的不僅限于修正循環(huán)變量,而且可以是任何操作。例如前面例題中介紹的求1到100的和,用for語句可以表示為: for(sum=0,i=1;i=n;sum+=i,i+);返回本節(jié)目錄1.for語句的一般形式for 語句的
32、執(zhí)行過程 C語言程序設(shè)計 環(huán)境)返回本節(jié)目錄語句的執(zhí)行過程首先計算。求的值;若其值為非零,則轉(zhuǎn)去執(zhí)行;若的值為零,則轉(zhuǎn)去執(zhí)行,結(jié)束for語句。執(zhí)行一次for循環(huán)體。求解,轉(zhuǎn)執(zhí)行。結(jié)束循環(huán),執(zhí)行循環(huán)之后的語句。3.for語句實例【例3.25】用for語句實現(xiàn)求1-100之和。#include stdio.hmain() /*程序名為。 int sum=0,i=1; / *若sum的值超過int型變量能表示的范圍,則設(shè)置為長整型*/for 語句的實例 C語言程序設(shè)計 環(huán)境)返回本節(jié)目錄for( ;i=n;i+) sum+=i;printf(其和是 %dn,sum); /*若sum為長整型,則相應(yīng)的
33、輸出也設(shè)置成長整型ld*/ 運行結(jié)果:其和是5050for循環(huán)的執(zhí)行過程:先執(zhí)行表達式1,為空語句,然后判斷i=n是否成立,如果為真,執(zhí)行循環(huán)體sum+=i,轉(zhuǎn)而執(zhí)行i+,再判斷i=n,如此反復(fù),直到i=n為假為止。在這個例子中,i是循環(huán)控制變量,每次循環(huán)時,它的值都被改變且進行檢驗。for 語句多樣性 C語言程序設(shè)計 環(huán)境)返回本節(jié)目錄for語句的多樣性由于C語言中表達式的形式十分豐富,對for語句的三個控制表達式可以靈活運用,因此造成for語句形式多種多樣。(1)為空語句如上例中求1-100的和。本來由完成的初始化可提到循環(huán)之外完成。(2)和是逗號表達方式(3)用空循環(huán)來延長時間常用空循環(huán)
34、來產(chǎn)生延時,以達到某種特定要求。如:for(t=0;ttime;t+);(4)無限循環(huán)for循環(huán)的三個表達式中,任何一個都可以省略,但是分號;不可省略。所以下面的寫法:for(;)是一個無限循環(huán)。將成為死循環(huán)。3.3.5 循環(huán)的嵌套 C語言程序設(shè)計 環(huán)境)返回本節(jié)目錄在一個循環(huán)內(nèi)又完整地包含另一個循環(huán),稱為循環(huán)的嵌套,即循環(huán)體自身包含循環(huán)語句。前面介紹了三種類型的循環(huán),它們自己本身可以嵌套,如在for循環(huán)中包含另一個for循環(huán),也可以互相嵌套,例如可以for循環(huán)中包含一個while循環(huán)或者do-while循環(huán)等等。下面通過幾個例子來介紹循環(huán)嵌套的概念和運用?!纠?.26】打印如下形式的乘法小九
35、九表:1*1=12*1=2 2*2=49*1=9 9*2=18 9*3=27 9*9=81分析:表體共九行,所以首先考慮一個打印九行的算法:for(i=1;i=9;i+) 打印第i行其次考慮如何打印第i行。每行都有i個表達式?*?=積,可以寫為:for(j=1;j = i;j+) 打印第j個表達式循環(huán)的嵌套實例 C語言程序設(shè)計 環(huán)境)返回本節(jié)目錄打印第j個表達式,可寫為:printf(%d*%d=%-3d,i,j,i*j);在寫這個語句時,不寫換行,只能在第j個表達式輸出后寫一個語句使之換行。printf(n);綜上所述,打印以上形式的乘法小九九表的程序如下:【例3.26】 /*程序名為。*/
36、#include stdio.hmain() int i,j; /* i,j 分別控制行和列的輸出*/for(i=1;i=9;i+) for(j=1;j = i;j+) printf(%d*%d=%-3d,i,j,i*j);printf(n); /*另起一行*/ 3.3.6 break語句和continue語句 C語言程序設(shè)計 環(huán)境)返回本節(jié)目錄1. break語句2. continue語句1. break語句 C語言程序設(shè)計 環(huán)境)返回目錄1. break語句前面已經(jīng)介紹過用break語句跳出當(dāng)前的switch語句流程。在循環(huán)結(jié)構(gòu)中,也可以用break語句使流程跳出本層循環(huán)體,從而提前強制性
37、結(jié)束本層循環(huán)。break語句的一般形式為: break;【例3.28】在循環(huán)體中break語句執(zhí)行示例。#include stdio.h main() /*程序名為。*/ int i,s=0; for(i=1;i5) break; printf(s=%dn,s); printf(使用break語句時,s的最終值為:%dn,s); break語句 C語言程序設(shè)計 環(huán)境)程序運行后的輸出結(jié)果如下:s=1s=3使用break語句時,s的最終值為:6本例中,如果沒有break語句,程序?qū)⑦M行10次循環(huán);但當(dāng)i=3時,s的值為6,if語句中的表達式s5 值為1,于是執(zhí)行break語句, 循環(huán)立即中斷,跳
38、出for循環(huán),從而提前中止循環(huán),并轉(zhuǎn)向循環(huán)體外的下一條語句。此時,s的值為6。break語句使用說明:(1)只能在switch語句體和循環(huán)體內(nèi)使用break語句。(2)當(dāng)break語句出現(xiàn)在,其作用是跳出該switch語句體。當(dāng)break語句出現(xiàn)在循環(huán)體中,但并不在switch語句體內(nèi)時,則在執(zhí)行break語句后,使流程跳出本層循環(huán)體。返回目錄2. Continue語句 C語言程序設(shè)計 環(huán)境)語句continue語句的一般形式為: continue;【例3.30】將【例3.28】中的break語句改用continue語句,來比較兩者的區(qū)別。#include stdio.h main() /*程序名為。*/ int i,s=0; for(i=1;i5) cont
溫馨提示
- 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國粗布線毯數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國天然胡蘿卜素膠丸數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國埋地?zé)艟邤?shù)據(jù)監(jiān)測研究報告
- 2025年度旅游咨詢服務(wù)中介服務(wù)合同范本
- 2025年度教育培訓(xùn)機構(gòu)教育資源共享平臺建設(shè)合同范本
- 2025年度農(nóng)業(yè)現(xiàn)代化項目合作簡易勞動合同
- 2025年度智慧城市公共設(shè)施租賃合同匯編大全
- 2025年度救災(zāi)現(xiàn)場新聞發(fā)布流程紀(jì)錄片拍攝合同樣本
- 2025年度橋梁維修養(yǎng)護勞務(wù)服務(wù)合同
- 2025年度工地水泥黃沙供應(yīng)與施工效率提升承包合同
- T-GDWCA 0019-2018 輻照工藝操作規(guī)范
- 決策與博弈論課件
- 為什么偉大不能被計劃
- 精神障礙患者的社交技巧訓(xùn)練
- 司機考核管理制度
- 重慶八中2024屆高三12月高考適應(yīng)性月考卷(四) 語文試卷(含答案)
- 出差報銷單-中英對照版
- 電流互感器試驗報告
- 蔣中一動態(tài)最優(yōu)化基礎(chǔ)
- 七年級英語閱讀理解10篇(附答案解析)
- 抖音來客本地生活服務(wù)酒旅商家代運營策劃方案
評論
0/150
提交評論