C程序的流程控制管理概述_第1頁(yè)
C程序的流程控制管理概述_第2頁(yè)
C程序的流程控制管理概述_第3頁(yè)
C程序的流程控制管理概述_第4頁(yè)
C程序的流程控制管理概述_第5頁(yè)
已閱讀5頁(yè),還剩96頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第3 3章章 C C程序的流程控制程序的流程控制 3.1 C語(yǔ)句語(yǔ)句3.2 賦值語(yǔ)句賦值語(yǔ)句3.3 輸入輸出輸入輸出3.4 順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì)3.5 選擇結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)3.6 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì) C語(yǔ)句分為語(yǔ)句分為5類:類:控制語(yǔ)句控制語(yǔ)句:完成一定的控制功能。:完成一定的控制功能。 選擇選擇語(yǔ)句:語(yǔ)句:ifelse、switch 循環(huán)語(yǔ)句:循環(huán)語(yǔ)句:for、while、dowhile 結(jié)束本次循環(huán)語(yǔ)句:結(jié)束本次循環(huán)語(yǔ)句:continue 中止執(zhí)行中止執(zhí)行switch或循環(huán)語(yǔ)句:或循環(huán)語(yǔ)句:break 轉(zhuǎn)向語(yǔ)句:轉(zhuǎn)向語(yǔ)句:goto 從函數(shù)返回語(yǔ)句:從

2、函數(shù)返回語(yǔ)句:return3.1 C語(yǔ)句語(yǔ)句函數(shù)調(diào)用語(yǔ)句函數(shù)調(diào)用語(yǔ)句:由一個(gè)函數(shù)調(diào)用加一個(gè):由一個(gè)函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成。分號(hào)構(gòu)成。例如:例如:printf(This is a C statement. );表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句:由一個(gè)表達(dá)式加一個(gè)分號(hào):由一個(gè)表達(dá)式加一個(gè)分號(hào)構(gòu)成。構(gòu)成。例如:例如: a=3;空語(yǔ)句空語(yǔ)句:只有一個(gè)分號(hào)(:只有一個(gè)分號(hào)(;)的語(yǔ)句。)的語(yǔ)句。復(fù)合語(yǔ)句復(fù)合語(yǔ)句:用用 括起來(lái)的一些語(yǔ)句。括起來(lái)的一些語(yǔ)句。 例如:例如: z=x+y; t=z/100; printf(%f,t);3.2 賦值語(yǔ)句賦值語(yǔ)句1.賦值運(yùn)算符:賦值運(yùn)算符:=、+=、-=、*=、/=、%= 等等

3、作用:將一個(gè)數(shù)據(jù)賦給一個(gè)變量。作用:將一個(gè)數(shù)據(jù)賦給一個(gè)變量。2.賦值表達(dá)式賦值表達(dá)式 形式:形式:變量變量=表達(dá)式表達(dá)式 將表達(dá)式的值賦給變量將表達(dá)式的值賦給變量 例如:例如:a=5 b=a*4 變量變量(+、-、*、/、%)=表達(dá)式表達(dá)式將變量與表達(dá)式的值作相應(yīng)運(yùn)算后再賦給將變量與表達(dá)式的值作相應(yīng)運(yùn)算后再賦給變量。變量。例如:例如:x-=8 等價(jià)于等價(jià)于 x=x-8 y%=a+3 等價(jià)于等價(jià)于 y=y%(a+3)3.賦值表達(dá)式的值:等于左邊賦值表達(dá)式的值:等于左邊變量變量的值。的值。 4.賦值表達(dá)式后加分號(hào)構(gòu)成賦值語(yǔ)句。賦值表達(dá)式后加分號(hào)構(gòu)成賦值語(yǔ)句。寫(xiě)出下面表達(dá)式運(yùn)算后寫(xiě)出下面表達(dá)式運(yùn)算后

4、a的值的值(a=3(a=3* *5)=45)=4* *3 3a=3*5 a的值為的值為 15a=4 *3 a的值為的值為 12a*=a a的值為的值為1212144a-=144 a的值為的值為1441440a+=0 a的值為的值為 0寫(xiě)出下面表達(dá)式運(yùn)算后寫(xiě)出下面表達(dá)式運(yùn)算后a的值,設(shè)原來(lái)的值,設(shè)原來(lái)a=12,a已定義為整型變量。已定義為整型變量。a+=a-=a*=a 字符輸出函數(shù)字符輸出函數(shù): putchar 字符輸入函數(shù)字符輸入函數(shù): getcharu 格式輸出函數(shù)格式輸出函數(shù): printfu 格式輸入函數(shù)格式輸入函數(shù): scanf5C語(yǔ)言無(wú)語(yǔ)言無(wú)I/O語(yǔ)句,語(yǔ)句,I/O操作由函數(shù)實(shí)現(xiàn)操作

5、由函數(shù)實(shí)現(xiàn)5 #include 頭文件頭文件3.3 輸入輸出輸入輸出格式:格式:printf(格式控制格式控制,輸出表列輸出表列)功能:按指定格式向顯示器輸出數(shù)據(jù)功能:按指定格式向顯示器輸出數(shù)據(jù)printf函數(shù)(格式輸出函數(shù))函數(shù)(格式輸出函數(shù))輸出表列:要輸出的數(shù)據(jù)(可以沒(méi)有,多個(gè)時(shí)以輸出表列:要輸出的數(shù)據(jù)(可以沒(méi)有,多個(gè)時(shí)以“,”“,”分分隔)隔)格式控制:格式控制:格式說(shuō)明:格式說(shuō)明:% % 修飾符修飾符 格式字符格式字符,用于指定輸出格式,用于指定輸出格式轉(zhuǎn)義字符:轉(zhuǎn)義字符:nn,tt普通字符:原樣輸出普通字符:原樣輸出3.3.1 格式輸出格式輸出printf 格式字符格式字符格式字符

6、格式字符使用形式使用形式功能說(shuō)明功能說(shuō)明d%d %md %ld %mld帶符號(hào)的十進(jìn)制整數(shù)帶符號(hào)的十進(jìn)制整數(shù)o%o %mo %lo無(wú)符號(hào)的八進(jìn)制整數(shù)無(wú)符號(hào)的八進(jìn)制整數(shù)x,X%x %mx %lx無(wú)符號(hào)的十六進(jìn)制整數(shù)無(wú)符號(hào)的十六進(jìn)制整數(shù)u%u %lu 無(wú)符號(hào)的十進(jìn)制整數(shù)無(wú)符號(hào)的十進(jìn)制整數(shù)f%f %m.nf %-m.nf小數(shù)形式的單、雙精度數(shù)小數(shù)形式的單、雙精度數(shù)e,E%e %m.ne %-m.ne指數(shù)形式的單、雙精度數(shù)指數(shù)形式的單、雙精度數(shù)g,G%gf f、e e格式中較短者忽略格式中較短者忽略0 0c%c %mc輸出一個(gè)字符輸出一個(gè)字符s%s %ms %-ms %m.ns %-m.ns輸出字符串

7、輸出字符串% 輸出輸出“%”%”其中:其中:l l 用于長(zhǎng)整型數(shù)用于長(zhǎng)整型數(shù) n n 小數(shù)位數(shù)或截取的字符個(gè)數(shù)小數(shù)位數(shù)或截取的字符個(gè)數(shù)m m 輸出域的寬度輸出域的寬度 - - 域內(nèi)左對(duì)齊域內(nèi)左對(duì)齊1%d以十進(jìn)制整數(shù)形式輸出。以十進(jìn)制整數(shù)形式輸出。例:例:#include void main( ) int a=123; long b=123456; printf(%d,%5d,%-5d,%2dn,a,a,a,a); printf(b=%ld,b); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:123,123,123,123b=123456 2%f以小數(shù)形式輸出單精度和雙精度實(shí)數(shù)。以小數(shù)形式輸出單精度和雙精度實(shí)數(shù)。 整數(shù)

8、部分全部輸出,并輸出整數(shù)部分全部輸出,并輸出6位小數(shù)。位小數(shù)。例例3.10:按指定的小數(shù)位數(shù)輸出實(shí)數(shù):按指定的小數(shù)位數(shù)輸出實(shí)數(shù)#includevoid main( ) float d=12.345; printf(d=%f,d=%.2f,d=%10.2f,d,d,d);運(yùn)行結(jié)果:運(yùn)行結(jié)果:d=12.345000,d=12.35,d=12.353%c輸出一個(gè)字符。輸出一個(gè)字符。例:例:#include void main( ) char c=a; printf(%c,c); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: a4%s輸出一個(gè)字符串。輸出一個(gè)字符串。例:例:#include void main( ) prin

9、tf(%sn,CHINA); printf(%3s,%7.2s,%-5.3s,CHINA, CHINA, CHINA); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:CHINACHINA, CH, CHI 3.3.2 scanf函數(shù)(格式輸入函數(shù))函數(shù)(格式輸入函數(shù))格式:格式:scanf(格式格式控制控制,地址表列),地址表列)功能:按指定格式從鍵盤輸入數(shù)據(jù),存入地址功能:按指定格式從鍵盤輸入數(shù)據(jù),存入地址表列指定的存儲(chǔ)單元中表列指定的存儲(chǔ)單元中, ,并按回車鍵結(jié)束并按回車鍵結(jié)束地址表列:變量的地址,用取地址運(yùn)算符地址表列:變量的地址,用取地址運(yùn)算符& &例:例:scanf(%d,&a);

10、輸入:輸入:10 則則 10 ascanf 格式字符格式字符格式字符格式字符使用形式使用形式功能說(shuō)明功能說(shuō)明d%d %md %ld %hd 帶符號(hào)的十進(jìn)制整數(shù)帶符號(hào)的十進(jìn)制整數(shù)o%o %mo %lo %ho無(wú)符號(hào)的八進(jìn)制整數(shù)無(wú)符號(hào)的八進(jìn)制整數(shù)x,X%x %mx %lx %hx無(wú)符號(hào)的十六進(jìn)制整數(shù)無(wú)符號(hào)的十六進(jìn)制整數(shù)u%u %lu 無(wú)符號(hào)的十進(jìn)制整數(shù)無(wú)符號(hào)的十進(jìn)制整數(shù)f%f %mf %lf 小數(shù)形式的單、雙精度數(shù)小數(shù)形式的單、雙精度數(shù)e,E%e %le同上同上g,G%g 同上同上c%c 輸入單字符輸入單字符s%s 輸入字符串輸入字符串*%* 不賦給相應(yīng)變量不賦給相應(yīng)變量其中:其中:mm數(shù)據(jù)輸入域

11、的寬度數(shù)據(jù)輸入域的寬度 hh用于短整型數(shù)據(jù)用于短整型數(shù)據(jù)l l 用于長(zhǎng)整型或用于長(zhǎng)整型或doubledouble型數(shù)據(jù)型數(shù)據(jù)輸入分隔符的指定:一般以空格、輸入分隔符的指定:一般以空格、TABTAB或或回車鍵作為分隔符回車鍵作為分隔符例例3.11:從鍵盤輸入兩個(gè)整數(shù),求兩數(shù)之和。:從鍵盤輸入兩個(gè)整數(shù),求兩數(shù)之和。#include void main( ) int a,b; scanf(%d,%d,&a,&b); printf(%d,a+b);輸入輸入 3,5 輸出輸出 8例例3: scanf(a=%d,b=%d,c=%d,&a,&b,&c); 輸入輸入 a

12、=12,b=24,c=36 則則 12a, 24 b, 36c例例1: scanf(%d,%d,&a,&b); 輸入輸入 3,4 則則 3a, 4 b例例2: scanf(%d:%d:%d,&a,&b,&c); 輸入輸入 12:30:45 則則 12 a, 30 b, 45 c “格式控制格式控制”中出現(xiàn)的普通字符,中出現(xiàn)的普通字符,原樣輸入原樣輸入。說(shuō)明:說(shuō)明:用用%c%c格式符時(shí),空格和轉(zhuǎn)義字符格式符時(shí),空格和轉(zhuǎn)義字符作為有效字符輸入作為有效字符輸入例:例:scanf(%c%c%c,&c1,&c2,&c3); 若輸入若輸入 a

13、 ab bc c 則則 ac1, c2, b c3輸入數(shù)據(jù)時(shí),遇以下情況認(rèn)為該數(shù)輸入數(shù)據(jù)時(shí),遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束:據(jù)結(jié)束: 遇空格、遇空格、TABTAB、或回車或回車 遇指定的寬度結(jié)束遇指定的寬度結(jié)束 遇非法輸入遇非法輸入例:例: scanf(%d%c%f,&a,&b,&c); 若輸入若輸入 1234a123o.26 則則 1234 a, a b, 123 c格式:格式:putchar(c)參數(shù):參數(shù):c為字符為字符常量、變量或表達(dá)式。常量、變量或表達(dá)式。功能:將字符輸出到顯示器上。功能:將字符輸出到顯示器上。3.3.3 字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出一、一、

14、 putchar函數(shù)(字符輸出函數(shù))函數(shù)(字符輸出函數(shù))#include void main( ) char a,b,c; a=B;b= O; c=Y; putchar(a); putchar(b); putchar(c); putchar(n);運(yùn)行結(jié)果:運(yùn)行結(jié)果:BOY例:例:putchar(a);putchar(n);putchar(b);putchar(n); putchar(c);運(yùn)行結(jié)果:運(yùn)行結(jié)果:BOY格式格式:getchar( )功能:從鍵盤輸入一個(gè)字符。功能:從鍵盤輸入一個(gè)字符。3.3.4 getchar函數(shù)(字符輸入函數(shù)函數(shù)(字符輸入函數(shù) )例例3.14:使用:使用getc

15、har( )函數(shù)輸入字符函數(shù)輸入字符#include void main( ) char c; c=getchar( ); putchar(c);運(yùn)行情況:運(yùn)行情況:a a3.4 順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì)#include #define PI 3.14159void main( ) float r,area,v; printf(“Input r: ”); /*人機(jī)交互,輸出提示信息人機(jī)交互,輸出提示信息*/ scanf(%f,&r); area=PI*r*r;/*求圓的面積并將結(jié)果賦給求圓的面積并將結(jié)果賦給area*/ v=4.0/3*PI*r*r*r; /*求圓球的體積并賦給

16、求圓球的體積并賦給v*/ printf(area=%6.2fn,area); printf(v=%6.2fn,v);例例3.17: 輸入半徑,求圓的面積和球的體積輸入半徑,求圓的面積和球的體積 Input r:3 area= 28.27v=113.10文件包含預(yù)處理命令文件包含預(yù)處理命令變量定義變量定義運(yùn)行情況:運(yùn)行情況:3.5.1 關(guān)系表達(dá)式關(guān)系表達(dá)式 1.關(guān)系運(yùn)算符:關(guān)系運(yùn)算符:、=、= =、!= 作用:進(jìn)行比較運(yùn)算。作用:進(jìn)行比較運(yùn)算。2.關(guān)系表達(dá)式關(guān)系表達(dá)式 形式:形式:關(guān)系運(yùn)算符關(guān)系運(yùn)算符 如:如:a=0、x= =03.優(yōu)先級(jí)優(yōu)先級(jí) = (高)(高) = = != (低)(低) 算術(shù)

17、運(yùn)算符算術(shù)運(yùn)算符 關(guān)系運(yùn)算關(guān)系運(yùn)算符符 賦值運(yùn)算賦值運(yùn)算符符 高高低低3.5 選擇結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì) 5.舉例:舉例: int a=3,b=2,c=1,d,f; 則:則: ab 表達(dá)式值等于表達(dá)式值等于_ (ab)= =c 表達(dá)式值等于表達(dá)式值等于_ b+cb d值等于值等于_ f=abc f值等于值等于_11010算術(shù)運(yùn)算符算術(shù)運(yùn)算符 關(guān)系運(yùn)算關(guān)系運(yùn)算符符 賦值運(yùn)算賦值運(yùn)算符符 高高低低4.關(guān)系表達(dá)式的值關(guān)系表達(dá)式的值:如果表達(dá)式成立,值為如果表達(dá)式成立,值為 1,表示表示“真真”;否則,值為;否則,值為 0,表示,表示“假假” 。#include void main( ) int

18、 a,b,c; a=3;b=2;c=1; printf(%d , ab); printf(%d , (ab)=c); printf(%d , b+ca); printf(%dn, ab=0&x=9 (數(shù)學(xué)不等式數(shù)學(xué)不等式0 x9) 數(shù)學(xué)不等式數(shù)學(xué)不等式0 x9用用0=x3&84-!0=1&84-!0=1&84-1=1& 8b)&(n=cd)1.簡(jiǎn)單分支結(jié)構(gòu)簡(jiǎn)單分支結(jié)構(gòu) 格式:格式:if (表達(dá)式表達(dá)式) 語(yǔ)句語(yǔ)句 執(zhí)行過(guò)程:先計(jì)算表達(dá)式的執(zhí)行過(guò)程:先計(jì)算表達(dá)式的值,若其值值,若其值0,則執(zhí)行后面,則執(zhí)行后面的語(yǔ)句;否則,不執(zhí)行。的語(yǔ)句;否則,不執(zhí)

19、行。表達(dá)式表達(dá)式語(yǔ)句語(yǔ)句真真(非非0)假假(0)例:例:if (xy) printf(%d,x);3.5.3 if 語(yǔ)句語(yǔ)句說(shuō)明:說(shuō)明:u 語(yǔ)句可以是復(fù)合語(yǔ)句語(yǔ)句可以是復(fù)合語(yǔ)句u if (x) if (x!=0)例例3.22:輸入兩個(gè)實(shí)數(shù),按由小到大的順序輸出。輸入兩個(gè)實(shí)數(shù),按由小到大的順序輸出。#include void main( ) float a,b,t;printf(請(qǐng)輸入兩個(gè)實(shí)數(shù)請(qǐng)輸入兩個(gè)實(shí)數(shù):); scanf(%f,%f,&a,&b);if (ab) t=a; a=b; b=t; printf(%5.2f,%5.2fn,a,b);運(yùn)行情況:運(yùn)行情況:請(qǐng)輸入兩個(gè)實(shí)數(shù)

20、請(qǐng)輸入兩個(gè)實(shí)數(shù):7.1,5.1 5.10, 7.10運(yùn)行情況:運(yùn)行情況:請(qǐng)輸入兩個(gè)實(shí)數(shù)請(qǐng)輸入兩個(gè)實(shí)數(shù):5.1,7.1 5.10, 7.10例例3.23:輸入三個(gè)整數(shù),按由小到大排序并輸出。輸入三個(gè)整數(shù),按由小到大排序并輸出。#include void main( ) int a,b,c,t; scanf(%d,%d,%d,&a,&b,&c); if (ab) t=a;a=b;b=t; if (ac) t=a;a=c;c=t; if (bc) t=b;b=c;c=t; printf(%d,%d,%dn,a,b,c);運(yùn)行情況:運(yùn)行情況:11,22,18 11,18,22表

21、達(dá)式表達(dá)式語(yǔ)句語(yǔ)句1語(yǔ)句語(yǔ)句2真真假假2.雙分支結(jié)構(gòu)雙分支結(jié)構(gòu)&格式:格式:if (表達(dá)式表達(dá)式) 語(yǔ)句語(yǔ)句1 else 語(yǔ)句語(yǔ)句2例:例:if (xy) max=x; else max=y;&執(zhí)行過(guò)程:先計(jì)算表達(dá)式的值,若執(zhí)行過(guò)程:先計(jì)算表達(dá)式的值,若0,則執(zhí)行語(yǔ)句則執(zhí)行語(yǔ)句1,否則,執(zhí)行語(yǔ)句,否則,執(zhí)行語(yǔ)句2。例例3.25 輸入三角形三條邊長(zhǎng),求三角形面積。當(dāng)輸入的三條邊長(zhǎng)不能構(gòu)成三輸入三角形三條邊長(zhǎng),求三角形面積。當(dāng)輸入的三條邊長(zhǎng)不能構(gòu)成三角形時(shí),輸出角形時(shí),輸出“不能構(gòu)成一個(gè)三角形不能構(gòu)成一個(gè)三角形”。#include #include void main( ) flo

22、at x,y,z,s,area; printf(請(qǐng)輸入三角形的三條邊長(zhǎng)請(qǐng)輸入三角形的三條邊長(zhǎng):); scanf(%f,%f,%f,&x,&y,&z); if (x+yz&y+zx&x+zy) s=0.5*(x+y+z); area=sqrt(s*(s-x)*(s-y)*(s-z); printf(面積面積=%7.2fn,area); else printf(不能構(gòu)成一個(gè)三角形不能構(gòu)成一個(gè)三角形n);運(yùn)行結(jié)果:運(yùn)行結(jié)果:請(qǐng)輸入三角形的三條邊長(zhǎng)請(qǐng)輸入三角形的三條邊長(zhǎng):3,4,6 面積面積= 5.333.多分支多分支if 語(yǔ)句語(yǔ)句一般格式:一般格式:if (表

23、達(dá)式表達(dá)式1) 語(yǔ)句語(yǔ)句1else if (表達(dá)式表達(dá)式2) 語(yǔ)句語(yǔ)句2else if (表達(dá)式表達(dá)式3) 語(yǔ)句語(yǔ)句3.else 語(yǔ)句語(yǔ)句n表達(dá)式表達(dá)式1語(yǔ)句語(yǔ)句1真真假假表達(dá)式表達(dá)式2表達(dá)式表達(dá)式3語(yǔ)句語(yǔ)句4語(yǔ)句語(yǔ)句3語(yǔ)句語(yǔ)句2真真真真假假假假例例3.28:編程計(jì)算應(yīng)付金額:編程計(jì)算應(yīng)付金額c,其單價(jià),其單價(jià)s隨購(gòu)物隨購(gòu)物數(shù)量數(shù)量t變化,關(guān)系如下:變化,關(guān)系如下: 20 t500 30 200t500 40 100t200 50 t100s =#include void main( ) int s,t,c; printf(請(qǐng)輸入購(gòu)物數(shù)量請(qǐng)輸入購(gòu)物數(shù)量:); scanf(%d,&t);

24、 if (t500) s=20; else if (t200) s=30; else if (t100) s=40; else s=50; c=s t; printf(應(yīng)付金額應(yīng)付金額=%d,c);運(yùn)行結(jié)果:運(yùn)行結(jié)果:請(qǐng)輸入購(gòu)物數(shù)量請(qǐng)輸入購(gòu)物數(shù)量:600 應(yīng)付金額應(yīng)付金額=12000嵌套的多分支嵌套的多分支if語(yǔ)句語(yǔ)句含義:在含義:在if語(yǔ)句中又包含一個(gè)或多個(gè)語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句,語(yǔ)句,稱為稱為if語(yǔ)句的嵌套。語(yǔ)句的嵌套。格式:格式: if ( ) if ( ) 語(yǔ)句語(yǔ)句 else 語(yǔ)句語(yǔ)句 2 else if ( ) 語(yǔ)句語(yǔ)句 3 else 語(yǔ)句語(yǔ)句 4 注意:注意: if與與el

25、se的配對(duì)關(guān)系。的配對(duì)關(guān)系。從內(nèi)層開(kāi)始,從內(nèi)層開(kāi)始,else總是總是與它上面最近的沒(méi)有與它上面最近的沒(méi)有配對(duì)的配對(duì)的if配對(duì)。配對(duì)。 若若if與與else的數(shù)目不一的數(shù)目不一樣,可以加樣,可以加 來(lái)確定來(lái)確定配對(duì)關(guān)系。配對(duì)關(guān)系。 例例3.29:編寫(xiě)程序:編寫(xiě)程序 y=-5-5(x0)(x0)(x0)流程圖:流程圖:其中其中x,y為為int型型變量。變量。開(kāi)始開(kāi)始結(jié)結(jié) 束束輸入輸入x輸出輸出yx=0 x0y= -5y=0y=7YNYN#include void main( ) int x,y; printf(請(qǐng)輸入請(qǐng)輸入x:); scanf(%d,&x); if (x0) y= -5;

26、else if (x=0) y=0; else y=7; printf(x=%d,y=%d,x,y); x0y= -5YNx=0y=0y=7YN運(yùn)行結(jié)果:運(yùn)行結(jié)果:請(qǐng)輸入請(qǐng)輸入x:-5 x=-5,y=-54.條件運(yùn)算符和條件表達(dá)式條件運(yùn)算符和條件表達(dá)式條件運(yùn)算符條件運(yùn)算符 ? : (三目運(yùn)算符)(三目運(yùn)算符)條件表達(dá)式:用條件運(yùn)算符連接各種表達(dá)式。條件表達(dá)式:用條件運(yùn)算符連接各種表達(dá)式。 形式:形式:?: 例如:例如: xy?a:b表達(dá)式的值:當(dāng)表達(dá)式的值:當(dāng)表達(dá)式表達(dá)式1的值非的值非0時(shí),值為時(shí),值為表達(dá)表達(dá)式式2之值;否則,為之值;否則,為表達(dá)式表達(dá)式3之值。之值。結(jié)合方向?yàn)樽杂抑磷蠼Y(jié)合方

27、向?yàn)樽杂抑磷?ab?a:cd?c:d a=1,b=2,c=3,d=4 表達(dá)式的值表達(dá)式的值_4當(dāng)當(dāng)if語(yǔ)句中的兩個(gè)分支都只執(zhí)行一個(gè)賦值語(yǔ)句中的兩個(gè)分支都只執(zhí)行一個(gè)賦值語(yǔ)句給同一個(gè)變量語(yǔ)句給同一個(gè)變量賦值賦值時(shí),可以用條件時(shí),可以用條件表達(dá)式來(lái)處理。表達(dá)式來(lái)處理。max=(ab)?a:b;例:例:if (ab) max=a;else max=b;可以表示為可以表示為_(kāi)運(yùn)行情況:運(yùn)行情況:A a例例3.30:輸入一個(gè)字符,判斷是否為大寫(xiě)字:輸入一個(gè)字符,判斷是否為大寫(xiě)字母,若是,將其轉(zhuǎn)換成小寫(xiě)字母;否則,不母,若是,將其轉(zhuǎn)換成小寫(xiě)字母;否則,不轉(zhuǎn)換。然后輸出最后得到的字符。轉(zhuǎn)換。然后輸出最后得到的

28、字符。ch=(ch=A&ch=Z)?(ch+32):ch;#include void main( ) char ch; scanf(%c,&ch); if (ch=A & ch=Z) ch=ch+32; printf(%cn,ch);3.5.4 switch 語(yǔ)句語(yǔ)句多分支選擇語(yǔ)句。多分支選擇語(yǔ)句。switch (表達(dá)式表達(dá)式) case 常量常量1:語(yǔ)句組語(yǔ)句組1;break; case 常量常量2:語(yǔ)句組語(yǔ)句組2;break; case 常量常量n:語(yǔ)句組語(yǔ)句組n;break; default:語(yǔ)句組語(yǔ)句組n+1;一般形式:一般形式:執(zhí)行過(guò)程執(zhí)行過(guò)程:當(dāng)表達(dá)式的值與

29、某一個(gè):當(dāng)表達(dá)式的值與某一個(gè)case后面的常量表后面的常量表達(dá)式值相等時(shí),就執(zhí)行此達(dá)式值相等時(shí),就執(zhí)行此case后面的語(yǔ)句組,當(dāng)執(zhí)行后面的語(yǔ)句組,當(dāng)執(zhí)行到到break語(yǔ)句時(shí),跳出語(yǔ)句時(shí),跳出switch語(yǔ)句。若表達(dá)式的值與所語(yǔ)句。若表達(dá)式的值與所有的常量表達(dá)式值都不匹配,則執(zhí)行有的常量表達(dá)式值都不匹配,則執(zhí)行default后面的語(yǔ)后面的語(yǔ)句組。句組。#include void main( ) char grade; scanf(%c,&grade); switch (grade) case A:printf(85100n);break; case B:printf(7084n);bre

30、ak; case C:printf(6069n);break; case D:printf(60n);break; default:printf(errorn); 例例3.31 :要求按照考試成績(jī)的:要求按照考試成績(jī)的等級(jí)輸出百分制分?jǐn)?shù)段。等級(jí)輸出百分制分?jǐn)?shù)段。 運(yùn)行情況:運(yùn)行情況:C 6069switch (grade) case A:printf(85100n); case B:printf(7084n); case C:printf(6069n); case D:printf(60n); default:printf(errorn); 說(shuō)明:說(shuō)明:執(zhí)行完一個(gè)執(zhí)行完一個(gè)case后面的語(yǔ)句后

31、,繼續(xù)執(zhí)行下一后面的語(yǔ)句后,繼續(xù)執(zhí)行下一個(gè)個(gè)case語(yǔ)句而語(yǔ)句而不再進(jìn)行判斷不再進(jìn)行判斷。所以必須加上。所以必須加上break語(yǔ)句,以便終止語(yǔ)句,以便終止switch語(yǔ)句的執(zhí)行。語(yǔ)句的執(zhí)行。思考題:如果去掉上例程序中的所有思考題:如果去掉上例程序中的所有break語(yǔ)語(yǔ)句,且輸入的成績(jī)?yōu)榫洌逸斎氲某煽?jī)?yōu)锽,輸出會(huì)如何?,輸出會(huì)如何?運(yùn)行情況:運(yùn)行情況:B 7084606960n);break; grade的值為的值為A、B或或C時(shí)都執(zhí)行時(shí)都執(zhí)行同一組語(yǔ)句。同一組語(yǔ)句。3.5.5 選擇結(jié)構(gòu)程序舉例選擇結(jié)構(gòu)程序舉例例例3.32 :判斷某一年是否是閏年。:判斷某一年是否是閏年。分析:分析:滿足以下兩

32、種條件之一即為閏年:滿足以下兩種條件之一即為閏年:能被能被4但不能被但不能被100整除;能被整除;能被400整除。整除。根據(jù)以上條件,分別考慮如下情況:根據(jù)以上條件,分別考慮如下情況:n不能被不能被4整除的,不是閏年。整除的,不是閏年。n能被能被4整除但不能被整除但不能被100整除的,是閏年。整除的,是閏年。n能被能被400整除的,是閏年。整除的,是閏年。n其他都不是閏年。其他都不是閏年。 例例3.32流程圖流程圖year被被4整除整除year被被100整除整除year被被400整除整除flag=1flag=0flag=1flag=0flag輸出輸出“閏年閏年”輸出輸出“非閏年非閏年”真真真真

33、真真真真假假假假假假假假#include void main( ) int year,flag; printf(請(qǐng)輸入年份請(qǐng)輸入年份: ); scanf(%d,&year); if (year%4=0)if (year%100=0)if (year%400=0)flag=1;else flag=0;else flag=1; else flag=0; if (flag)printf(%d是閏年是閏年n,year); elseprintf(%d不是閏年不是閏年n,year); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:請(qǐng)輸入年份請(qǐng)輸入年份:1996 1996是閏年是閏年#include void main( )

34、 int year,flag; scanf(%d,&year); if (year%4= =0&year%100!=0)|(year%400= =0) flag=1; else flag=0; if (flag) printf(%d是閏年是閏年n ,year); else printf(%d不是閏年不是閏年n ,year);例例3.33:求一元二次方程:求一元二次方程ax2+bx+c=0的解,的解,a、b、c由鍵盤輸入。由鍵盤輸入。分析:分析:方程的解有以下幾種可能:方程的解有以下幾種可能: a=0,不是二次方程。,不是二次方程。 b2-4ac=0,有兩個(gè)相等實(shí)根。,有兩個(gè)相等

35、實(shí)根。 b2-4ac0,有兩個(gè)不等實(shí)根。,有兩個(gè)不等實(shí)根。 b2-4ac0b-4ac=0a=0輸出輸出 “非二次非二次方程方程”輸出兩輸出兩個(gè)相等個(gè)相等實(shí)根:實(shí)根: -ab2真真真真真真假假假假假假#include #include void main( ) float a,b,c,disc,x1,x2,p,q; scanf(%f,%f,%f,&a,&b,&c); printf(此方程此方程); if (fabs(a)=1e-6) printf(不是二次方程不是二次方程n); else disc=b*b-4*a*c; if (fabs(disc)1e-6) x1=(-b

36、+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(有兩個(gè)不等實(shí)根有兩個(gè)不等實(shí)根:%8.4f and %8.4fn,x1,x2); else p= -b/(2*a); q=sqrt(-disc)/(2*a); printf(有兩個(gè)共軛復(fù)根有兩個(gè)共軛復(fù)根:n); printf(%8.4f+%8.4fin,p,q); printf(%8.4f-%8.4fin,p,q); 運(yùn)行情況:運(yùn)行情況:1,2,1 此方程有兩個(gè)相等實(shí)根此方程有兩個(gè)相等實(shí)根: -1.00001,2,2 此方程有兩個(gè)共軛復(fù)根此方程有兩個(gè)共軛復(fù)根: -1.0000+ 1.0000i

37、-1.0000- 1.0000i2,6,1 此方程有兩個(gè)不等實(shí)根此方程有兩個(gè)不等實(shí)根: -0.1771 and -2.8229例例5.1:一座高架橋最高限速:一座高架橋最高限速90公里公里/時(shí),判斷時(shí),判斷一輛車是否超速,若超速需要交納罰金。根據(jù)一輛車是否超速,若超速需要交納罰金。根據(jù)汽車時(shí)速與最高限速的比值劃分:汽車時(shí)速與最高限速的比值劃分:r=(v-90)/90(r為超速比,為超速比,v為汽車時(shí)速)為汽車時(shí)速)當(dāng)當(dāng)r=0.2時(shí),為正常值;時(shí),為正常值;當(dāng)當(dāng)0.2r0.4,須交納,須交納200元;元;當(dāng)當(dāng)0.40.6時(shí),交納時(shí),交納1000元。元。方法:使用并列方法:使用并列if語(yǔ)句語(yǔ)句#i

38、ncludevoid main( ) float r,v; printf(請(qǐng)輸入車速請(qǐng)輸入車速v:n); scanf(%f,&v); r=(v-90)/90; if(r0.2 & r0.4 & r0.6) printf(請(qǐng)支付請(qǐng)支付1000元元!n); 3.6 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)例:計(jì)算例:計(jì)算1+2+50的值。的值。分析:分析:設(shè)累加和變量為設(shè)累加和變量為sum,其初值為,其初值為0;加數(shù)變量為加數(shù)變量為i,初值為,初值為1;重復(fù)執(zhí)行重復(fù)執(zhí)行 sum=sum+i; i=i+1;當(dāng)當(dāng)i增到增到51時(shí),停止計(jì)算。此時(shí),時(shí),停止計(jì)算。此時(shí),sum的值就是的值就是150的累加和

39、。的累加和。什么是循環(huán)?什么是循環(huán)?一個(gè)循環(huán)結(jié)構(gòu)包括四部分:初始化循環(huán)變一個(gè)循環(huán)結(jié)構(gòu)包括四部分:初始化循環(huán)變量、循環(huán)條件、循環(huán)體、修改循環(huán)變量量、循環(huán)條件、循環(huán)體、修改循環(huán)變量C語(yǔ)言中三種基本的循環(huán)結(jié)構(gòu):語(yǔ)言中三種基本的循環(huán)結(jié)構(gòu):1、while語(yǔ)句構(gòu)成的循環(huán)語(yǔ)句構(gòu)成的循環(huán)(“當(dāng)型當(dāng)型”循環(huán)循環(huán))2、dowhile語(yǔ)句構(gòu)成的循環(huán)語(yǔ)句構(gòu)成的循環(huán)(“直到型直到型”循環(huán)循環(huán) )3、for語(yǔ)句構(gòu)成的循環(huán)語(yǔ)句構(gòu)成的循環(huán)(“當(dāng)型當(dāng)型”循環(huán)循環(huán)) goto goto語(yǔ)句為無(wú)條件轉(zhuǎn)向語(yǔ)句,它的一語(yǔ)句為無(wú)條件轉(zhuǎn)向語(yǔ)句,它的一般形式為般形式為 goto goto 語(yǔ)句標(biāo)號(hào);語(yǔ)句標(biāo)號(hào); 語(yǔ)句標(biāo)號(hào)符合標(biāo)識(shí)符命名規(guī)則,即

40、由字語(yǔ)句標(biāo)號(hào)符合標(biāo)識(shí)符命名規(guī)則,即由字母、數(shù)字和下劃線組成,第一個(gè)字符必母、數(shù)字和下劃線組成,第一個(gè)字符必須為字母或下劃線。須為字母或下劃線。 例如:例如:goto label_1; goto label_1; 合法合法 goto 123goto 123; 不合法不合法3.6.1 goto語(yǔ)句語(yǔ)句 結(jié)構(gòu)化程序設(shè)計(jì)方法主張限制使用結(jié)構(gòu)化程序設(shè)計(jì)方法主張限制使用gotogoto語(yǔ)句,因?yàn)闉E用語(yǔ)句,因?yàn)闉E用gotogoto語(yǔ)句將使程序語(yǔ)句將使程序流程無(wú)規(guī)律、可讀性差流程無(wú)規(guī)律、可讀性差. .一般來(lái)說(shuō),可以有兩種用途:一般來(lái)說(shuō),可以有兩種用途:(1) (1) 與與ifif語(yǔ)句一起構(gòu)成循環(huán)結(jié)構(gòu);語(yǔ)句一起

41、構(gòu)成循環(huán)結(jié)構(gòu);(2) (2) 從多層循環(huán)的內(nèi)層循環(huán)跳轉(zhuǎn)到外層從多層循環(huán)的內(nèi)層循環(huán)跳轉(zhuǎn)到外層循環(huán)。循環(huán)。3.6.1 goto語(yǔ)句語(yǔ)句#include void main( ) int i,sum; sum=0;i=1; loop: sum=sum+i; i+; if (i=50) goto loop; printf(%dn,sum);運(yùn)行結(jié)果:運(yùn)行結(jié)果:1275例例3.34:計(jì)算:計(jì)算1+2+50的值。的值。一般形式:一般形式: while(表達(dá)式)(表達(dá)式) 語(yǔ)句;語(yǔ)句;3.6.2 while語(yǔ)句語(yǔ)句執(zhí)行過(guò)程:執(zhí)行過(guò)程:計(jì)算表達(dá)式的值,若為真計(jì)算表達(dá)式的值,若為真(非(非0),則執(zhí)行循環(huán)體,否

42、則退出循),則執(zhí)行循環(huán)體,否則退出循環(huán),執(zhí)行后面的語(yǔ)句。環(huán),執(zhí)行后面的語(yǔ)句。表達(dá)式表達(dá)式語(yǔ)句語(yǔ)句0非非0例例3.35:求:求12350 i=1i= 50sum=sum+ii=i+1i=1當(dāng)當(dāng)i=50sum=sum+ii=i+1假假真真#include void main( ) int i=1,sum=0; while (i=50) sum=sum+i; i+; printf(%dn,sum);運(yùn)行結(jié)果:運(yùn)行結(jié)果:12751275(1)(1)循環(huán)體如果包含一個(gè)以上的語(yǔ)句,要循環(huán)體如果包含一個(gè)以上的語(yǔ)句,要用用 括起來(lái),括起來(lái),否則,只執(zhí)行到第一個(gè)分否則,只執(zhí)行到第一個(gè)分號(hào)處號(hào)處。 (2)(2)在

43、循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語(yǔ)句。語(yǔ)句。遇到數(shù)列求和、求積的問(wèn)題,一般可以遇到數(shù)列求和、求積的問(wèn)題,一般可以考慮使用循環(huán)解決??紤]使用循環(huán)解決。注意循環(huán)初值的設(shè)置。一般對(duì)于累加器注意循環(huán)初值的設(shè)置。一般對(duì)于累加器設(shè)置為設(shè)置為0,累乘器設(shè)置為,累乘器設(shè)置為1。一般形式:一般形式:do 循環(huán)體語(yǔ)句循環(huán)體語(yǔ)句while (表達(dá)式表達(dá)式);3.6.3 dowhile 語(yǔ)句語(yǔ)句循環(huán)體語(yǔ)句循環(huán)體語(yǔ)句當(dāng)表達(dá)式值為真當(dāng)表達(dá)式值為真循環(huán)體語(yǔ)句循環(huán)體語(yǔ)句表達(dá)式表達(dá)式非非0(0(真)真)0(假)(假)執(zhí)行過(guò)程:執(zhí)行過(guò)程:先執(zhí)行一次循先執(zhí)行一次循環(huán)體中的語(yǔ)句,然后計(jì)算環(huán)體中的語(yǔ)句,然

44、后計(jì)算表達(dá)式的值,若非表達(dá)式的值,若非0,則,則再次執(zhí)行循環(huán)體,否則結(jié)再次執(zhí)行循環(huán)體,否則結(jié)束循環(huán)。束循環(huán)。例例3.36:求:求12350sum=sum+i i=i+1i=1i =50sum=sum+i i=i+1i=1當(dāng)當(dāng)i = 50真真假假#include void main( ) int i,sum=0; i=1; do sum=sum+i; i+; while (i=50); printf(%dn,sum);運(yùn)行結(jié)果:運(yùn)行結(jié)果:12751275例例3.37:while和和dowhile比較比較#include void main( ) int i,sum=0; scanf(%d,&am

45、p;i); do sum=sum+i;i+; while (i=10); printf(%d,sum);#include void main( ) int i,sum=0; scanf(%d,&i); while (i=10) sum=sum+i;i+; printf(%d,sum);運(yùn)行情況:運(yùn)行情況:1111 0 0運(yùn)行情況:運(yùn)行情況:1111 1111運(yùn)行情況:運(yùn)行情況:1 1 5555運(yùn)行情況:運(yùn)行情況:1 1 5555While語(yǔ)句和語(yǔ)句和dowhile語(yǔ)句的區(qū)別:語(yǔ)句的區(qū)別: 第一次執(zhí)行時(shí),第一次執(zhí)行時(shí), while語(yǔ)句先判斷,符合語(yǔ)句先判斷,符合條件才執(zhí)行循環(huán)體;條件才執(zhí)

46、行循環(huán)體;dowhile語(yǔ)句不管語(yǔ)句不管是否符合條件,先執(zhí)行一次循環(huán)體。是否符合條件,先執(zhí)行一次循環(huán)體。 while語(yǔ)句:語(yǔ)句:while(表達(dá)式表達(dá)式)后無(wú)分號(hào),后無(wú)分號(hào), dowhile語(yǔ)句:語(yǔ)句:while(表達(dá)式表達(dá)式)有分號(hào)。有分號(hào)。 一般形式:一般形式:for (表達(dá)式表達(dá)式1;表達(dá)式表達(dá)式2;表達(dá)式表達(dá)式3) 語(yǔ)句;語(yǔ)句;3.6.4 for 語(yǔ)句語(yǔ)句執(zhí)行過(guò)程:執(zhí)行過(guò)程:求解表達(dá)式求解表達(dá)式1。求解表達(dá)式求解表達(dá)式2,若其值為真,則執(zhí),若其值為真,則執(zhí)行循環(huán)體語(yǔ)句,然后執(zhí)行行循環(huán)體語(yǔ)句,然后執(zhí)行。若為。若為假,轉(zhuǎn)假,轉(zhuǎn) 。求解表達(dá)式求解表達(dá)式3,然后轉(zhuǎn),然后轉(zhuǎn)繼續(xù)執(zhí)行。繼續(xù)執(zhí)行。結(jié)

47、束循環(huán),執(zhí)行結(jié)束循環(huán),執(zhí)行for語(yǔ)句的下一條語(yǔ)句的下一條語(yǔ)句。語(yǔ)句。 例例3.38:求:求1+2+50運(yùn)行結(jié)果:運(yùn)行結(jié)果:1275#include void main( ) int sum=0,i; for (i=1;i=50;i+) sum=sum+i; printf(%dn,sum);for語(yǔ)句一般應(yīng)用形式:語(yǔ)句一般應(yīng)用形式:for (循環(huán)變量賦初值循環(huán)變量賦初值 ; 循環(huán)條件循環(huán)條件 ; 修改循環(huán)變量修改循環(huán)變量) 語(yǔ)句;語(yǔ)句;說(shuō)明:說(shuō)明: for語(yǔ)句中的三個(gè)表達(dá)式可以省略或部分省略,語(yǔ)句中的三個(gè)表達(dá)式可以省略或部分省略,但其中的分號(hào)不能省略。但其中的分號(hào)不能省略。例:例: for (i

48、=1;i=100;i+) sum=sum+i; 表達(dá)式表達(dá)式1省略省略 i=1; for (;i100) break; sum=sum+i; 表達(dá)式表達(dá)式1和和3都省略都省略 i=1; for (;i=100;) sum=sum+i; i+; i=1; while (i=100) sum=sum+i; i+; 三個(gè)表達(dá)式都省略三個(gè)表達(dá)式都省略 for (;)表達(dá)式表達(dá)式3省略省略 for (i=1;i=100;) sum=sum+i; i+; 例例: for (i=1;i=100;i+) sum=sum+i; 例例3.40:從鍵盤輸入一個(gè)整數(shù):從鍵盤輸入一個(gè)整數(shù)n,計(jì)算,計(jì)算n! #inclu

49、de void main( ) int i,n,fac=1; printf(請(qǐng)輸入一個(gè)整數(shù)請(qǐng)輸入一個(gè)整數(shù):); scanf(%d, &n); for (i=1;i=n;i+) fac=fac*i; printf(%d!=%dn, n,fac); 運(yùn)行情況:運(yùn)行情況:請(qǐng)輸入一個(gè)整數(shù)請(qǐng)輸入一個(gè)整數(shù):5 5 5!=1205!=120含義:含義:一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)一個(gè)循環(huán)體內(nèi)又包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。結(jié)構(gòu),稱為循環(huán)的嵌套。while ( ) while ( ) while ( ) do while ( ); while ( ) for ( ) 3.6.6 循環(huán)

50、的嵌套循環(huán)的嵌套三種循環(huán)可以互相嵌套。三種循環(huán)可以互相嵌套。do while ( ) while ( );do for (;) while ( );do do while ( ); while ( );for (;) for (;) for (;) do while ( ); for (;) while ( ) 注:注:內(nèi)層循環(huán)應(yīng)完全嵌套在外層循環(huán)內(nèi)部,不能交叉嵌套;內(nèi)層循環(huán)應(yīng)完全嵌套在外層循環(huán)內(nèi)部,不能交叉嵌套;內(nèi)層循環(huán)體執(zhí)行次數(shù)內(nèi)層循環(huán)體執(zhí)行次數(shù)=內(nèi)層循環(huán)次數(shù)內(nèi)層循環(huán)次數(shù)外層循環(huán)次數(shù)。外層循環(huán)次數(shù)。例例3.42:輸出九九乘法表:輸出九九乘法表1*1=11*2=2 2*2=41*3=3 2*

51、3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=491*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81#include void main( ) int i,j;

52、for (i=1;i=9;i+) for (j=1;j=i;j+) printf(%d*%d=%d ,j,i,i*j); printf(n); #include void main( ) int i,j; for (i=1;i=9;i+) for (j=1;j=i;j+) printf(%d*%d=%-4d,j,i,i*j); printf(n); 3.6.7 break語(yǔ)句和語(yǔ)句和continue語(yǔ)句語(yǔ)句一、一、break 語(yǔ)句語(yǔ)句功能:功能:跳出跳出switch 語(yǔ)句。語(yǔ)句。 跳出循環(huán),接著執(zhí)行循環(huán)結(jié)構(gòu)跳出循環(huán),接著執(zhí)行循環(huán)結(jié)構(gòu)下面的語(yǔ)句。下面的語(yǔ)句。例例3.43:#include voi

53、d main( ) int r; float area,pi=3.14159; for (r=1;r100) break; printf(r=%d ,area=%fn,r, area); 說(shuō)明:說(shuō)明:程序的作用是計(jì)程序的作用是計(jì)算算r=1到到r=10的圓面積,的圓面積,直到面積大于直到面積大于100為止。為止。(當(dāng)(當(dāng)r=6時(shí),時(shí),area100,執(zhí)行執(zhí)行break語(yǔ)句,提前結(jié)語(yǔ)句,提前結(jié)束循環(huán))。束循環(huán))。二、二、continue 語(yǔ)句語(yǔ)句功能:功能:結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中 未執(zhí)行的語(yǔ)句。未執(zhí)行的語(yǔ)句。說(shuō)明:說(shuō)明:v僅用于循環(huán)語(yǔ)句中。僅用于循環(huán)語(yǔ)句中。v循環(huán)

54、嵌套時(shí),循環(huán)嵌套時(shí),break和和continue只影響包只影響包含它們的內(nèi)層循環(huán),與外層循環(huán)無(wú)關(guān)。含它們的內(nèi)層循環(huán),與外層循環(huán)無(wú)關(guān)。#include void main( ) int n; for (n=100;n150 & i400) continue;if (n%7=0) printf(%d ,n); 例例3.45:將:將100150之間和之間和400450之間能被之間能被7整整除的數(shù)輸出。除的數(shù)輸出。例例3.46:求:求1!+2!+3!+10!的值。!的值。#include void main( ) int n,fac=1,sum=0; for (n=1;n=10;n+) fac=fac*n; sum=sum+fac; printf(sum=%d,sum);運(yùn)行結(jié)果:運(yùn)行結(jié)果:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論