c語言程序設(shè)計--第5章_循環(huán)_第1頁
c語言程序設(shè)計--第5章_循環(huán)_第2頁
c語言程序設(shè)計--第5章_循環(huán)_第3頁
c語言程序設(shè)計--第5章_循環(huán)_第4頁
c語言程序設(shè)計--第5章_循環(huán)_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、問題問題1 1:求:求1+2+3+1+2+3+100=?+100=?問題問題2:2: 在許多問題中需要用到循環(huán)控制。循環(huán)結(jié)構(gòu)是在許多問題中需要用到循環(huán)控制。循環(huán)結(jié)構(gòu)是結(jié)構(gòu)化程序設(shè)計的基本結(jié)構(gòu)之一,它和順序結(jié)結(jié)構(gòu)化程序設(shè)計的基本結(jié)構(gòu)之一,它和順序結(jié)構(gòu)、選擇結(jié)構(gòu)共同作為各種復雜程序的基本構(gòu)構(gòu)、選擇結(jié)構(gòu)共同作為各種復雜程序的基本構(gòu)造單元。造單元。四種循環(huán)結(jié)構(gòu):四種循環(huán)結(jié)構(gòu): ifgoto while dowhile for三種循環(huán)方式:當型循環(huán)、直到型循環(huán)三種循環(huán)方式:當型循環(huán)、直到型循環(huán) 、步、步 長型循環(huán)長型循環(huán)結(jié)構(gòu)形式:結(jié)構(gòu)形式: 語句標號語句標號:if (表達式)(表達式) 語句語句/語句組

2、語句組 goto 語句標號語句標號;kk: if(ab) a=a-2; goto kk; 此結(jié)構(gòu)構(gòu)成的是此結(jié)構(gòu)構(gòu)成的是“當型當型”循環(huán)。循環(huán)。 goto語句為無條件轉(zhuǎn)向語句 一般形式 goto 語句標號; 語句標號用標識符表示,它的命名規(guī)則與變量名相同,標號通常用大小字母。 例如: goto LABEL_1; 合法; goto 123; 不合法.KK: if(ab) a=a-2; goto KK; 結(jié)構(gòu)化程序設(shè)計方法主張限制使用goto語句,因為濫用goto語句將使程序流程無規(guī)律、可讀性差. 一般來說,goto 可以有兩種用途:(1) 與if語句一起構(gòu)成循環(huán)結(jié)構(gòu);(2) 從循環(huán)體中跳轉(zhuǎn)到循環(huán)體

3、外。 但是這種用法不符合結(jié)構(gòu)化原則,一般不宜采用,只有在不得已時(例如能大大提高效率)才使用.n goto語句是從匯編語言中發(fā)展而來,但使用goto容易造成混亂。n 現(xiàn)代觀點認為,混亂根源不在goto,而在標號 任何程序都可以不用goto就實現(xiàn)其功能 但在某些情況下,使用goto可以讓程序更清晰n初學C語言,編程中不要使用goto語句例例6.1 用用if語句和語句和goto語句構(gòu)成循環(huán),求語句構(gòu)成循環(huán),求1到到100的和的和#include stdio.hvoid main()int i,sum=0;i=1;LOOP: if (i=100) sum=sum+i; i+; goto LOOP;

4、printf(%dn,sum);這里用的是這里用的是“當型當型”循環(huán)循環(huán)結(jié)構(gòu),當滿足結(jié)構(gòu),當滿足“i=100” i=100” 時時執(zhí)行花括弧內(nèi)的循環(huán)體。執(zhí)行花括弧內(nèi)的循環(huán)體。 結(jié)構(gòu)形式:結(jié)構(gòu)形式:while(表達式(表達式1) 工作過程: step 1、判斷表達式1 的值是否非0, step 2、非0,執(zhí)行語句塊1,再返回step 1 step 3、直到表達式值為0時,執(zhí)行語句塊2特點: 先判斷,后執(zhí)行 例例6.2 求求1到到100的和的和1001nn運行結(jié)果:運行結(jié)果:50505050#include void main()int i,sum=0;i=1;while(i=100)sum=su

5、m+i;i+;printf(%dn,sum);(1)循環(huán)體如果包含一個以上的語句,應該用花括弧括起來,以復合語句形式出現(xiàn)。(2)在循環(huán)體中應有使循環(huán)趨向于結(jié)束的語句。 注意:(1) 循環(huán)體如果包含一個以上的語句,應該用花括弧括起來,以復合語句形式出現(xiàn)。 (2) 在循環(huán)體中應有使循環(huán)趨向于結(jié)束的語句。如果無此語句,則i的值始終不改變,循環(huán)永不結(jié)束。 1-100的奇數(shù)為:的奇數(shù)為:1,3,5,7,9,-97,99 定義變量定義變量i=1; 循環(huán)控制條件:循環(huán)控制條件:i=100 循環(huán)規(guī)律循環(huán)規(guī)律i=i+2;#include stdio.hvoid main() int i=1; while(i=1

6、00) printf(%d t,i); i+=2; 例:讀程序例:讀程序,回答問題回答問題循環(huán)次數(shù)為:循環(huán)次數(shù)為: ,執(zhí)行后結(jié)果為:執(zhí)行后結(jié)果為:#include stdio.hint main() int k=2; while ( k !=0 ) printf ( %d n, k); k-; printf(n); #include stdio.hint main() int y=10; while ( y- ); printf(n y=%d, y); 小結(jié)小結(jié):(1)循環(huán)體如果包含多個語句,應用)循環(huán)體如果包含多個語句,應用“ ”括括 起,否則起,否則while的范圍僅到它之后第一個的范圍僅

7、到它之后第一個 分號處分號處(2)循環(huán)體中一定有對于循環(huán)控制變量的操作循環(huán)體中一定有對于循環(huán)控制變量的操作(3)while構(gòu)成的是構(gòu)成的是“當型當型”循環(huán)。循環(huán)。三、三、dowhile循環(huán)循環(huán)工作過程:step 1、執(zhí)行語句/語句組。 step 2、判斷表達式值, 當為非0時,重復 執(zhí)行語句/語句組, step 3、直到表達式的值為0時循環(huán)結(jié)束。特點: 先執(zhí)行,后判斷 do 語句塊1;while (表達式);語句塊2;結(jié)構(gòu)形式:結(jié)構(gòu)形式:這個分號可這個分號可不要忘了哦不要忘了哦工作過程工作過程例例6.3 求求1到到100的和的和#include int main()int i, sum=0;i

8、=1;dosum=sum+i;i+;while(i=100);printf(%dn,sum);#include stdio.hmain() int sum= 0,i; puts (輸入一個數(shù)輸入一個數(shù)); scanf( %d,&i); do sum=sum+i; i+; while (i=10); printf ( “ nsum=%d n ,sum); printf (“i=%d ,i); 例:比較下面程序段例:比較下面程序段, 當輸入值為當輸入值為 11時,執(zhí)行結(jié)果有何時,執(zhí)行結(jié)果有何不同:不同:(1)#include stdio.hmain() int sum = 0,i; put

9、s (輸入一個數(shù)輸入一個數(shù)); scanf ( %d, &i); while (i = 10) sum =sum+i; i+; printf (nsum=%d n ,sum); printf (“i=%d ,i); (2) 比較結(jié)果:當比較結(jié)果:當 i10 時,兩程序運行結(jié)果不同。時,兩程序運行結(jié)果不同。 while() 一開始就一開始就條件不成立,條件不成立,會跳過循環(huán),向下執(zhí)會跳過循環(huán),向下執(zhí)行行 do while() 會執(zhí)行一次循環(huán)體,會執(zhí)行一次循環(huán)體,再進行比較再進行比較,條件不條件不成立,再成立,再跳出循環(huán),向下執(zhí)行。跳出循環(huán),向下執(zhí)行。whilewhile語句和用語句和用d

10、o-whiledo-while語句的比較語句的比較: : 在一般情況下,用在一般情況下,用whilewhile語句和用語句和用do-whiledo-while語語句處理同一問題時,若二者的循環(huán)體部分是一句處理同一問題時,若二者的循環(huán)體部分是一樣的,它們的結(jié)果也一樣。樣的,它們的結(jié)果也一樣。 但如果但如果whilewhile后面的表達式一開始就為假后面的表達式一開始就為假(0(0值值) )時時,兩種循環(huán)的結(jié)果是不同的。兩種循環(huán)的結(jié)果是不同的。 for循環(huán)又稱為循環(huán)又稱為步長型步長型或或計數(shù)器型計數(shù)器型循環(huán)常用于固循環(huán)常用于固定(已知)次數(shù)循環(huán)情況。定(已知)次數(shù)循環(huán)情況。 可替代可替代while

11、循環(huán)完成不固定(未知)次數(shù)循環(huán)情循環(huán)完成不固定(未知)次數(shù)循環(huán)情況的處理。況的處理。四、四、For 循環(huán)循環(huán)語法:語法:for(表達式表達式1;表達式表達式2;表達式表達式3) 語句語句;意義:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)for語句的執(zhí)行過程: (1) 先計算表達式1。 (2) 計算表達式2,若其值為真(非0),則執(zhí) 行for語句中指定的內(nèi)嵌語句,然后執(zhí)行 第(3)步。若為假(0),則結(jié)束循環(huán), 轉(zhuǎn)到第(5)步。 (3) 求解表達式3。 (4) 轉(zhuǎn)回上面第(2)步驟繼續(xù)執(zhí)行。 (5) 循環(huán)結(jié)束,執(zhí)行for語句下面的一個語句 表達式表達式2?執(zhí)行語句語句非非0值為值為0執(zhí)行f

12、or循環(huán)之后的語句執(zhí)行表達式3執(zhí)行表達式執(zhí)行表達式1表達式表達式2?執(zhí)行語句語句非非0值為值為0執(zhí)行for循環(huán)之后的語句執(zhí)行表達式3執(zhí)行表達式執(zhí)行表達式1循環(huán)初始條件循環(huán)初始條件循環(huán)控制條件循環(huán)控制條件循環(huán)體循環(huán)體 for語句等價于下列語句:表達式1;while (表達式2) 語句; 表達式3; forfor語句最簡單的應用形式也就是最易理解的形式如下:語句最簡單的應用形式也就是最易理解的形式如下: for(for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值) ) 例: for(i=1;i=100;i+) sum=sum+i; 相當于以下語句: i=1; wh

13、ile(i=100) sum=sum+i;i+; 顯然,用for語句簡單、方便。 (1) for語句的一般形式中的“表達式1”可以省略,此時應在for語句之前給循環(huán)變量賦初值。注意省略表達式1時,其后的分號不能省略。如 for( ;i=100; i+) sum=sum+i; 執(zhí)行時,跳過“求解表達式1”這一步,其他不變。(2) 表達式2可以省略,默認表達式2始終為真,循環(huán)無終止地進行下去。例如:for( i=1; ; i+ ) sum=sum+i; 如果表達式2空缺。它相當于: for(i=1; 1; i+) sum=sum+i原則上表達式原則上表達式2不可省略,若省略需要在循環(huán)體不可省略,若

14、省略需要在循環(huán)體中用其它手段(中用其它手段(break、goto等)結(jié)束循環(huán)等)結(jié)束循環(huán) 。(3) (3) 表達式表達式3 3也可以省略,但此時程序設(shè)計者應另外設(shè)也可以省略,但此時程序設(shè)計者應另外設(shè)法保證循環(huán)能正常結(jié)束。如:法保證循環(huán)能正常結(jié)束。如: for(i=1; i=100; ) sum=sum+i; i+; i+ i+的操作不放在的操作不放在forfor語句的表達式語句的表達式3 3的位置處,而的位置處,而作為循環(huán)體的一部分,效果是一樣的,都能使循環(huán)作為循環(huán)體的一部分,效果是一樣的,都能使循環(huán)正常結(jié)束。正常結(jié)束。 (4) (4) 可以省略表達式可以省略表達式1 1和表達式和表達式3 3

15、,只有表達式,只有表達式2 2,即只,即只給循環(huán)條件。如:給循環(huán)條件。如: for( ;i=100; ) while(i=100) sum=sum+i; 相當于相當于 sum=sum+i; i+; i+; 在這種情況下,完全等同于在這種情況下,完全等同于whilewhile語句。語句。 可見可見forfor語句比語句比whilewhile語句功能強,除了可以給出循環(huán)條語句功能強,除了可以給出循環(huán)條件外,還可以賦初值,使循環(huán)變量自動增值等。件外,還可以賦初值,使循環(huán)變量自動增值等。(5) 3(5) 3個表達式都可省略,如:個表達式都可省略,如: for(for( ; ; ; ; ) ) 語句語句

16、; ; 相當于相當于 while(1) while(1) 語句語句; ; 即不設(shè)初值,不判斷條件即不設(shè)初值,不判斷條件( (認為表達式認為表達式2 2為真值為真值) ),F(xiàn)orFor中循環(huán)變量不改變。無終止地執(zhí)行循環(huán)體。中循環(huán)變量不改變。無終止地執(zhí)行循環(huán)體。 (6) (6) 表達式表達式1 1可以是設(shè)置循環(huán)變量初值的賦值表達式,可以是設(shè)置循環(huán)變量初值的賦值表達式,也可以是與循環(huán)變量無關(guān)的其他表達式。如也可以是與循環(huán)變量無關(guān)的其他表達式。如: : for (sum=0; i=100; i+) sum=sum+i; 表達式表達式3 3 也可以是與循環(huán)控制無關(guān)的任意表達式。也可以是與循環(huán)控制無關(guān)的任

17、意表達式。 表達式表達式1 1和表達式和表達式3 3可以是一個簡單的表達式,也可以可以是一個簡單的表達式,也可以是逗號表達式,即包含一個以上的簡單表達式,中間用是逗號表達式,即包含一個以上的簡單表達式,中間用逗號間隔。如:逗號間隔。如: for( sum=0, i=1; i=100; i+) sum=sum+i;或或 for(i=0, j=100; i=j; i+, j- ) k=i+j; 表達式表達式1 1和表達式和表達式3 3都是逗號表達式,各包含兩個賦值都是逗號表達式,各包含兩個賦值表達式,即同時設(shè)兩個初值,使兩個變量增值表達式,即同時設(shè)兩個初值,使兩個變量增值. . 在逗號表達式內(nèi)按自

18、左至右順序求解,整個在逗號表達式內(nèi)按自左至右順序求解,整個逗號表達式的值為最右邊的表達式的值。逗號表達式的值為最右邊的表達式的值。如如: : for(i=1; i=100; i+,i+) sum=sum+i;相當于相當于 for( i=1; i=100; i=i+2) sum=sum+i; (7) (7) 表達式表達式2 2一般是關(guān)系表達式一般是關(guān)系表達式( (如如i=100)i=100)或邏輯表達或邏輯表達式式 ( (如如ab & xy)ab & xy),但也可以是數(shù)值表達式或字符,但也可以是數(shù)值表達式或字符表達式,只要其值為非零,就執(zhí)行循環(huán)體。表達式,只要其值為非零,就執(zhí)行

19、循環(huán)體。 for(i=0; (c=getchar()!=n; i+=c); 在表達式在表達式2 2中先從終端接收一個字符賦給中先從終端接收一個字符賦給c c,然后判斷此賦值表達式的值,然后判斷此賦值表達式的值是否不等于是否不等于n(n(換行符換行符) ),如果不等于,如果不等于nn,就執(zhí)行循環(huán)體。,就執(zhí)行循環(huán)體。此此forfor語句的循環(huán)體為空語句,把本來要在循環(huán)體內(nèi)處理的內(nèi)容放語句的循環(huán)體為空語句,把本來要在循環(huán)體內(nèi)處理的內(nèi)容放在表達式在表達式3 3中,作用是一樣的??梢娭校饔檬且粯拥???梢奻orfor語句功能強,可以在表達式中完語句功能強,可以在表達式中完成本來應在循環(huán)體內(nèi)完成的操作成本

20、來應在循環(huán)體內(nèi)完成的操作。 for( ; (c=for( ; (c=getchargetchar()!=n;)()!=n;) printfprintf(%(%c,cc,c);); forfor語句中只有表達式語句中只有表達式2 2,而無表達式,而無表達式1 1和表達式和表達式3 3。 其作用是每讀入一個字符后立即輸出該字符,直到輸入其作用是每讀入一個字符后立即輸出該字符,直到輸入一個一個“換行換行”為止。請注意,從終端鍵盤向計算機輸入時,為止。請注意,從終端鍵盤向計算機輸入時,是在按是在按EnterEnter鍵以后才將一批數(shù)據(jù)一起送到內(nèi)存緩沖區(qū)中去的鍵以后才將一批數(shù)據(jù)一起送到內(nèi)存緩沖區(qū)中去的。

21、注意注意: : forfor語句可以把循環(huán)體和一些與循環(huán)控制語句可以把循環(huán)體和一些與循環(huán)控制無關(guān)的操作也作為表達式無關(guān)的操作也作為表達式1 1或表達式或表達式3 3出現(xiàn),這出現(xiàn),這樣程序可以短小簡潔。但過分地利用這一特點樣程序可以短小簡潔。但過分地利用這一特點會使會使forfor語句顯得雜亂,可讀性降低,最好語句顯得雜亂,可讀性降低,最好不要不要把與循環(huán)控制無關(guān)的內(nèi)容放到把與循環(huán)控制無關(guān)的內(nèi)容放到forfor語句中語句中。 在在for和和while語句之后一般語句之后一般沒有沒有分號分號 有分號表示循環(huán)體就是分號之前的內(nèi)容,即循環(huán)有分號表示循環(huán)體就是分號之前的內(nèi)容,即循環(huán)體不存在體不存在 例:

22、例: while (i 100); /如果如果i初值初值100,死循環(huán),死循環(huán) i+; 例:例: for (i = 0; i 100; i+);printf(“%d”, i);/ i=100從鍵盤中輸入一組數(shù)字,編程對負數(shù)求和。從鍵盤中輸入一組數(shù)字,編程對負數(shù)求和。方法二:固定次數(shù)循環(huán)(方法二:固定次數(shù)循環(huán)(for)方法一:不固定次數(shù)循環(huán)(方法一:不固定次數(shù)循環(huán)(while/do-while )#include stdio.h main() int i; float x,sum; printf (請輸入任意實數(shù)請輸入任意實數(shù)n); for(i=1;i=6; i+) scanf (%f,&

23、;x); if (x 0.0) sum+=x; printf ( n sum=%f ,sum); #include stdio.h main() float x,sum; printf (請輸入任意實數(shù),輸入請輸入任意實數(shù),輸入0則結(jié)束則結(jié)束n); for ( x =1; x!= 0; scanf( %f,&x) ) if (x 0.0 ) sum += x; printf ( nsum=%f ,sum);(1)(1)四種循環(huán)都可以用來處理同一問題,一般情四種循環(huán)都可以用來處理同一問題,一般情況下它們可以互相代替。但一般不提倡用況下它們可以互相代替。但一般不提倡用gotogoto型循環(huán)

24、。型循環(huán)。(2)(2)在在whilewhile循環(huán)和循環(huán)和do-whiledo-while循環(huán)中,只在循環(huán)中,只在whilewhile后面的括號內(nèi)指定循環(huán)條件,因此為了使循環(huán)后面的括號內(nèi)指定循環(huán)條件,因此為了使循環(huán)能正常結(jié)束,應在循環(huán)體中包含使循環(huán)趨于結(jié)能正常結(jié)束,應在循環(huán)體中包含使循環(huán)趨于結(jié)束的語句束的語句( (如如i+i+,或,或i=i+1i=i+1等等) )。 for for循環(huán)可以在表達式循環(huán)可以在表達式3 3中包含使循環(huán)趨于中包含使循環(huán)趨于結(jié)束的操作,甚至可以將循環(huán)體中的操作全結(jié)束的操作,甚至可以將循環(huán)體中的操作全部放到表達式部放到表達式3 3中。因此中。因此forfor語句的功能更

25、強語句的功能更強,凡用,凡用whilewhile循環(huán)能完成的,用循環(huán)能完成的,用forfor循環(huán)都能循環(huán)都能實現(xiàn)。實現(xiàn)。 (3)(3)用用whilewhile和和do-whiledo-while循環(huán)時,循環(huán)變量初始循環(huán)時,循環(huán)變量初始化的操作應在化的操作應在whilewhile和和do-whiledo-while語句之前完成語句之前完成。而。而forfor語句可以在表達式語句可以在表達式1 1中實現(xiàn)循環(huán)變量中實現(xiàn)循環(huán)變量的初始化。的初始化。n如果循環(huán)次數(shù)已知,用如果循環(huán)次數(shù)已知,用forn如果循環(huán)次數(shù)未知,用如果循環(huán)次數(shù)未知,用whilen如果循環(huán)體至少要執(zhí)行一次,用如果循環(huán)體至少要執(zhí)行一次,

26、用do-whilen只是思路,不是定律只是思路,不是定律 永遠不會退出的循環(huán)為死循環(huán)永遠不會退出的循環(huán)為死循環(huán) for (;) while (1) do while (1); 除非確實需要死循環(huán),否則不要使用這樣的形式。它除非確實需要死循環(huán),否則不要使用這樣的形式。它們使循環(huán)的中止條件變得不明朗們使循環(huán)的中止條件變得不明朗 一般情況下,要極力避免死循環(huán)一般情況下,要極力避免死循環(huán) 絕大多數(shù)程序不需要死循環(huán)。如果出現(xiàn),往往都是絕大多數(shù)程序不需要死循環(huán)。如果出現(xiàn),往往都是bug 時間過長的循環(huán)會造成時間過長的循環(huán)會造成“假死假死”現(xiàn)象,也要考慮解決現(xiàn)象,也要考慮解決一個循環(huán)體內(nèi)又包含另一個完整的循

27、環(huán)結(jié)構(gòu)一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu) 稱為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以嵌套稱為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以嵌套 循環(huán),這就是多層循環(huán)。循環(huán),這就是多層循環(huán)。 三種循環(huán)三種循環(huán)(while(while循環(huán)、循環(huán)、do-whiledo-while循環(huán)和循環(huán)和forfor循循 環(huán)環(huán)) )都可以互相嵌套。都可以互相嵌套。 下面幾種都是合法的形式:下面幾種都是合法的形式:(1) while( ) (2) do (3) for(;) while( ) do for(;) while( ); while( ); (4) while( ) (5) for(;) (6) do do while( )

28、 for(;) while( ) while( ) 嵌套循環(huán)執(zhí)行過程:嵌套循環(huán)執(zhí)行過程: 先執(zhí)行外層循環(huán)進入內(nèi)層循環(huán);先執(zhí)行外層循環(huán)進入內(nèi)層循環(huán); 內(nèi)層循環(huán)終止之后,接著執(zhí)行外層循環(huán);內(nèi)層循環(huán)終止之后,接著執(zhí)行外層循環(huán); 再由外層循環(huán)進入內(nèi)層循環(huán)中;再由外層循環(huán)進入內(nèi)層循環(huán)中; 當外層循環(huán)全部終止時,程序結(jié)束。當外層循環(huán)全部終止時,程序結(jié)束。for(i=0;i2;i+) for (j=0; j2; j+) printf(“*”); #include stdio.h void main() int i,j;for(i=0;i2;i+) printf(n外外n); for (j=0; j2; j+

29、) printf(內(nèi)內(nèi)t); 使用多層循環(huán)應注意:使用多層循環(huán)應注意: 1、內(nèi)層循環(huán)必須完全包含在外層循環(huán)中,、內(nèi)層循環(huán)必須完全包含在外層循環(huán)中,不得交叉不得交叉。 2、并列循環(huán)、并列循環(huán)可以使用可以使用相同的循環(huán)變量相同的循環(huán)變量 嵌套時內(nèi)、嵌套時內(nèi)、 外循環(huán)外循環(huán)不能使用不能使用相同的循環(huán)變量相同的循環(huán)變量 (1) for(i=0;) for(i=0;) (2)for(i=0;) for(i=0;) 轉(zhuǎn)移控制語句轉(zhuǎn)移控制語句break和和continue語句語句break語句的作用:循環(huán)體中使用語句的作用:循環(huán)體中使用break語句語句可以提前結(jié)束本循環(huán)體的可以提前結(jié)束本循環(huán)體的全部后續(xù)循

30、環(huán)。全部后續(xù)循環(huán)。Continue語句的作用:循環(huán)體中使用語句的作用:循環(huán)體中使用continue語句可以提前結(jié)束語句可以提前結(jié)束本次循環(huán),不執(zhí)本次循環(huán),不執(zhí)行本次循環(huán)的后續(xù)語句,立刻開始下一循環(huán)行本次循環(huán)的后續(xù)語句,立刻開始下一循環(huán)。n對對for、while、do-while循環(huán)進行內(nèi)部手術(shù)循環(huán)進行內(nèi)部手術(shù)6.5.1 break6.5.1 break語句語句 breakbreak語句可以用來從循環(huán)體內(nèi)跳出循環(huán)體,語句可以用來從循環(huán)體內(nèi)跳出循環(huán)體,即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語句即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語句 一般形式:一般形式: break;break;注意注意: :break

31、break語句不能用于循環(huán)語句和語句不能用于循環(huán)語句和switchswitch語語句之外的任何其他語句中。句之外的任何其他語句中。 例例: float pi=3.14159;for(r=1;r100) break; printf(r=%f,area=%fn,r,area); 程序的作用是計算程序的作用是計算r=1r=1到到r=10r=10時的圓面積,直到時的圓面積,直到面積面積areaarea大于大于100100為止。從上面的為止。從上面的forfor循環(huán)可以循環(huán)可以看到:當看到:當area100area100時,執(zhí)行時,執(zhí)行breakbreak語句,提前結(jié)語句,提前結(jié)束循環(huán),即不再繼續(xù)執(zhí)行其

32、余的幾次循環(huán)束循環(huán),即不再繼續(xù)執(zhí)行其余的幾次循環(huán)。5.8.2 continue5.8.2 continue語句語句 作用為結(jié)束本次循環(huán),即跳過循環(huán)體中下面作用為結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,接著進行下一次是否執(zhí)行尚未執(zhí)行的語句,接著進行下一次是否執(zhí)行循環(huán)的判定循環(huán)的判定. .一般形式:一般形式: continue;continue;continue語句和break語句的區(qū)別 continue語句只結(jié)束本次循環(huán),而不是終止整個循環(huán)的執(zhí)行。 while(表達式1) for if(表達式2) continue; continue語句和break語句的區(qū)別 break語句則是結(jié)束整個

33、循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立。 while(表達式1) for if(表達式2) break; 例例6.5 把把100200之間的不能被之間的不能被3整除的數(shù)輸出。整除的數(shù)輸出。1001nn當當n n能被能被3 3整除時整除時,執(zhí)行,執(zhí)行continuecontinue語句語句,結(jié)束本次循環(huán),結(jié)束本次循環(huán)( (即跳即跳過過printfprintf函數(shù)語句函數(shù)語句) ),只有只有n n不能被不能被3 3整除時才整除時才執(zhí)行執(zhí)行printfprintf函數(shù)。函數(shù)。思考:如果將思考:如果將continuecontinue換成換成breakbreak結(jié)果如何?結(jié)果如何?#include i

34、nt main() int n; for (n=100; n=200; n+) if (n%3=0) continue; printf(%d ,n); 說明:說明:1、break語句可用于語句可用于switch語句結(jié)構(gòu)中語句結(jié)構(gòu)中 也可用于循環(huán)中。也可用于循環(huán)中。2、continue語句只可用于循環(huán)中。語句只可用于循環(huán)中。3、在循環(huán)嵌套中、在循環(huán)嵌套中break與與continue都只都只 影響包含它的那層循環(huán)影響包含它的那層循環(huán)n break和和continue少用為妙少用為妙 采用采用while while 編程編程打印九九乘法表,結(jié)果如下打印九九乘法表,結(jié)果如下圖圖 第第一行可以從一行可以從1循環(huán)至循環(huán)至9,可用,可用t分隔。分隔。 第二行直接第二行直接用用 printf()打印打印 - 九九乘法表可以用兩層的循環(huán)九九乘法表可以用兩層的循環(huán),要用兩個變量要用兩個變量 外層外層為為1 - 9, 內(nèi)層從內(nèi)層從 1 至至 n , 計算計算、打印出內(nèi)層與外層數(shù)據(jù)的乘積。、打印出內(nèi)層與外層數(shù)據(jù)的乘積。 #include stdio.hvoid main() int i=1,k; while (i10) printf(%dt,i+); printf(n-n); i=1;

溫馨提示

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

評論

0/150

提交評論