版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選課件精選課件第第1頁(yè)頁(yè)循環(huán)語(yǔ)句概述循環(huán)語(yǔ)句概述問(wèn)題:求問(wèn)題:求1100的累計(jì)和。的累計(jì)和。根據(jù)已有的知識(shí),可以用“1+2+100”來(lái)求解,但顯然很繁瑣。現(xiàn)在換個(gè)思路來(lái)考慮:首先設(shè)置一個(gè)累計(jì)器sum,其初值為0,利用sum =sum+ i 來(lái)計(jì)算(i依次取1、2、100),只要解決以下3個(gè)問(wèn)題即可: (1)將)將i的初值置為的初值置為1; (2)每執(zhí)行)每執(zhí)行1次次“sum = sum+ i”后,后,i增增 1; (3)當(dāng))當(dāng)n增到增到101時(shí),停止計(jì)算。此時(shí),時(shí),停止計(jì)算。此時(shí),sum的值就是的值就是1100的累計(jì)和的累計(jì)和。精選課件精選課件第第2頁(yè)頁(yè)根據(jù)已有的知識(shí),單獨(dú)實(shí)現(xiàn)每一步都不難。
2、但是,由于需要經(jīng)常使用這種重復(fù)計(jì)算結(jié)構(gòu)(稱為循環(huán)結(jié)構(gòu)),C語(yǔ)言提供了循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn),以簡(jiǎn)化、并規(guī)范循環(huán)結(jié)構(gòu)程序設(shè)計(jì)。在語(yǔ)言中,可用以下語(yǔ)句實(shí)現(xiàn)循環(huán):(1)用for語(yǔ)句。(2)用do-while語(yǔ)句。(3)用while語(yǔ)句。精選課件精選課件第第3頁(yè)頁(yè)循環(huán)循環(huán)的意思就是讓程序的意思就是讓程序重復(fù)地執(zhí)行某些語(yǔ)句重復(fù)地執(zhí)行某些語(yǔ)句 。C語(yǔ)言提供的循環(huán)結(jié)構(gòu)有三種:語(yǔ)言提供的循環(huán)結(jié)構(gòu)有三種:for語(yǔ)句、語(yǔ)句、while語(yǔ)句和語(yǔ)句和do_while語(yǔ)句。語(yǔ)句。 for語(yǔ)句既可以用于語(yǔ)句既可以用于循環(huán)次數(shù)已知循環(huán)次數(shù)已知的情況,也可用于循的情況,也可用于循環(huán)次數(shù)預(yù)先不知道的情況。環(huán)次數(shù)預(yù)先不知道的情況。for
3、語(yǔ)句的一般形式為:語(yǔ)句的一般形式為: for ();) 精選課件精選課件第第4頁(yè)頁(yè)功能:功能:先計(jì)算先計(jì)算的值,然后判斷的值,然后判斷的值,若該值為的值,若該值為“假假”,則退出循環(huán),執(zhí)行循環(huán)體下面的,則退出循環(huán),執(zhí)行循環(huán)體下面的語(yǔ)句;若該值為語(yǔ)句;若該值為“真真”,則執(zhí)行,則執(zhí)行,然后計(jì)算,然后計(jì)算的值,再判斷的值,再判斷的值,重復(fù)以上的值,重復(fù)以上的操作。的操作。 for語(yǔ)句的流程圖如圖語(yǔ)句的流程圖如圖 :一般情況下,一般情況下,是由一對(duì)花括括是由一對(duì)花括括起來(lái)的復(fù)合語(yǔ)句。起來(lái)的復(fù)合語(yǔ)句。精選課件精選課件第第5頁(yè)頁(yè)for循環(huán)語(yǔ)句注意:循環(huán)語(yǔ)句注意: 可以省略,但須保留分號(hào)可以省略,但須保留
4、分號(hào)(;),同時(shí)在,同時(shí)在for之前必須給循環(huán)變量賦值,如:之前必須給循環(huán)變量賦值,如:i=1; for ( ; i=100; i+ +) sum=sum+i; 一般不可省略,否則為無(wú)限循環(huán)。一般不可省略,否則為無(wú)限循環(huán)。如:如:for(i=1; i+) sum =sum+i;相當(dāng)于條件總為真,程序會(huì)一直不停的執(zhí)行直到相當(dāng)于條件總為真,程序會(huì)一直不停的執(zhí)行直到“數(shù)據(jù)數(shù)據(jù)溢出溢出”。 精選課件精選課件第第6頁(yè)頁(yè) 亦可省略,但在循環(huán)語(yǔ)句體中必須有亦可省略,但在循環(huán)語(yǔ)句體中必須有語(yǔ)句來(lái)修改循環(huán)變量,以使條件表達(dá)式的值在某一時(shí)語(yǔ)句來(lái)修改循環(huán)變量,以使條件表達(dá)式的值在某一時(shí)刻為刻為0,從而能正常結(jié)束循環(huán)
5、。,從而能正常結(jié)束循環(huán)。如:如:for(sum=0, i=1; i=100;) sum = sum +i; i+; 三個(gè)表達(dá)式均省略,即三個(gè)表達(dá)式均省略,即for(;),為無(wú)限循環(huán),程序),為無(wú)限循環(huán),程序中要避免這種情況的發(fā)生。中要避免這種情況的發(fā)生。 條件表達(dá)式條件表達(dá)式可以是關(guān)系表達(dá)式、數(shù)值表達(dá)式。只要表可以是關(guān)系表達(dá)式、數(shù)值表達(dá)式。只要表達(dá)式的值達(dá)式的值 0。就執(zhí)行循環(huán)語(yǔ)句。就執(zhí)行循環(huán)語(yǔ)句。 如:如:for( i=0; (c=getchar()!= n; i+=c);精選課件精選課件第第7頁(yè)頁(yè) 初始表達(dá)式、循環(huán)表達(dá)式可以是逗號(hào)表達(dá)式初始表達(dá)式、循環(huán)表達(dá)式可以是逗號(hào)表達(dá)式 如:如:for
6、 (sum=0, i=1; i=100; i+, i+)相當(dāng)于:相當(dāng)于:sum=0; for(i=1; i=100; i=i+2) for循環(huán)也可以循環(huán)也可以嵌套嵌套,執(zhí)行時(shí)是由外向里,逐層進(jìn)行,執(zhí)行時(shí)是由外向里,逐層進(jìn)行,先執(zhí)行外層循環(huán),再進(jìn)入內(nèi)層循環(huán);退出時(shí)相反,由先執(zhí)行外層循環(huán),再進(jìn)入內(nèi)層循環(huán);退出時(shí)相反,由里向外逐層退出,先退出內(nèi)層循環(huán),然后退到上一層里向外逐層退出,先退出內(nèi)層循環(huán),然后退到上一層循環(huán)。循環(huán)?!纠纠?-2】任意從鍵盤(pán)輸入兩個(gè)整數(shù)】任意從鍵盤(pán)輸入兩個(gè)整數(shù)a、b(ab),求它,求它們之間的幾何級(jí)數(shù)的和,數(shù)學(xué)表達(dá)式為。們之間的幾何級(jí)數(shù)的和,數(shù)學(xué)表達(dá)式為。biaii精選課件精
7、選課件第第8頁(yè)頁(yè)這個(gè)問(wèn)題與例這個(gè)問(wèn)題與例5-1類(lèi)似,只是所求級(jí)類(lèi)似,只是所求級(jí)數(shù)和的初值和終值數(shù)和的初值和終值不一樣,是由鍵盤(pán)不一樣,是由鍵盤(pán)任意輸入的,為避任意輸入的,為避免計(jì)算機(jī)錯(cuò)誤,免計(jì)算機(jī)錯(cuò)誤,要要求初值求初值a要小于終要小于終值值b 。算法流程圖如右圖:算法流程圖如右圖: 精選課件精選課件第第9頁(yè)頁(yè)/*exam5_2.c 求幾何級(jí)數(shù)的和求幾何級(jí)數(shù)的和*/#include main()int i,j,a,b,sum=0;printf(Please input two number:n);scanf(a=%d,b=%d,&a,&b);i=a; j=b;if(ab)i=b;j=a;for(
8、;i=j;i+)sum=sum+i;printf(sum=%dn,sum);精選課件精選課件第第10頁(yè)頁(yè)【例【例5-3】編寫(xiě)一個(gè)程序,在屏幕上打印出】編寫(xiě)一個(gè)程序,在屏幕上打印出具有具有8行行7列的如下圖案:列的如下圖案: 這是一個(gè)很有規(guī)律的圖案,這是一個(gè)很有規(guī)律的圖案,可采用二重循環(huán)嵌套的方可采用二重循環(huán)嵌套的方式:第式:第1層控制行數(shù),第層控制行數(shù),第2層控制列數(shù)。層控制列數(shù)。算法流程圖如下圖:算法流程圖如下圖: 精選課件精選課件第第11頁(yè)頁(yè)/*exam5_3.c 打印圖打印圖案案*/#include main()int i,j;for(i=1;i=8;i+)for(j=1;j=7;j+)
9、 printf(*); printf(n);精選課件精選課件第第12頁(yè)頁(yè) While語(yǔ)句也是一種用于產(chǎn)生循環(huán)動(dòng)作的語(yǔ)句,語(yǔ)句也是一種用于產(chǎn)生循環(huán)動(dòng)作的語(yǔ)句,一般形式為:一般形式為:while() 功能:功能:先計(jì)算先計(jì)算的值,若的值,若該值為該值為“假假”,則跳出循環(huán),執(zhí),則跳出循環(huán),執(zhí)行循環(huán)體后面的語(yǔ)句;若該值為行循環(huán)體后面的語(yǔ)句;若該值為“真真”,則執(zhí)行,則執(zhí)行,然后回過(guò)頭來(lái)再檢查然后回過(guò)頭來(lái)再檢查的的值,重復(fù)以上的操作。值,重復(fù)以上的操作。 while語(yǔ)句的流程圖語(yǔ)句的流程圖 精選課件精選課件第第13頁(yè)頁(yè):是用一對(duì)花括號(hào)括起來(lái)的復(fù)合語(yǔ)句。是用一對(duì)花括號(hào)括起來(lái)的復(fù)合語(yǔ)句。 注意:注意:在在
10、中要有使中要有使的值為假的值為假(或(或的值為零)的語(yǔ)句,否則會(huì)使程序出現(xiàn)的值為零)的語(yǔ)句,否則會(huì)使程序出現(xiàn)無(wú)限循環(huán)而發(fā)生錯(cuò)誤。無(wú)限循環(huán)而發(fā)生錯(cuò)誤。注意:注意:由于由于while循環(huán)是先判斷循環(huán)是先判斷的值,后決的值,后決定是否執(zhí)行定是否執(zhí)行,因此,有可能一次也不執(zhí),因此,有可能一次也不執(zhí)行行。精選課件精選課件第第14頁(yè)頁(yè)【例【例5-4】 將例將例51用用while語(yǔ)句重寫(xiě),語(yǔ)句重寫(xiě),求簡(jiǎn)單幾何求簡(jiǎn)單幾何級(jí)數(shù)的和級(jí)數(shù)的和 。/*exam5_4.c 用用while求簡(jiǎn)單幾何級(jí)數(shù)的和求簡(jiǎn)單幾何級(jí)數(shù)的和*/#include main()int i=1,sum=0;while(i=100)sum=su
11、m+i;i+;printf(sum=%dn,sum);程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果:sum=5050精選課件精選課件第第15頁(yè)頁(yè)【例【例5-5】輸入一個(gè)正整數(shù)】輸入一個(gè)正整數(shù)n,求,求n!。計(jì)算表達(dá)式:計(jì)算表達(dá)式:n!=n*(n-1)*(n-2)*2*1。用。用i代表循環(huán)變量,代表循環(huán)變量,s代表代表n!的結(jié)果值。的結(jié)果值。 編程時(shí)既可以采用編程時(shí)既可以采用for循環(huán),循環(huán),也可以采用也可以采用while循環(huán)循環(huán) 求任意正整數(shù)求任意正整數(shù)n的階乘的算的階乘的算法流程圖如圖法流程圖如圖 :精選課件精選課件第第16頁(yè)頁(yè)/*exam5_5.c while應(yīng)用應(yīng)用:求求n!*/#include main
12、()int i,n; long s;printf(please enter a integer:n);scanf(%d,&n);if(n=0)s=1;i=1;while(i=n)s=s*i;i+;printf(%d!=%ld,n,s);elseprintf(Invalid input!);試改為試改為for循環(huán)循環(huán)?精選課件精選課件第第17頁(yè)頁(yè)while 和 for 的比較for (i = 1; i = 10; i+) sum = sum + i; i = 1; 循環(huán)變量賦初值循環(huán)變量賦初值while (i = 10) 循環(huán)條件循環(huán)條件 sum = sum + i; i+; 循環(huán)變量的改變循環(huán)
13、變量的改變循環(huán)體循環(huán)體精選課件精選課件第第18頁(yè)頁(yè)例5-6 從鍵盤(pán)輸入一批學(xué)生的成績(jī),計(jì)算平均分。分析:分析:求累加和求累加和確定循環(huán)條件確定循環(huán)條件 不知道輸入數(shù)據(jù)的個(gè)數(shù),無(wú)法事先確定循環(huán)次數(shù)不知道輸入數(shù)據(jù)的個(gè)數(shù),無(wú)法事先確定循環(huán)次數(shù) 用一個(gè)用一個(gè)特殊的數(shù)據(jù)特殊的數(shù)據(jù)作為正常輸入數(shù)據(jù)的結(jié)束標(biāo)志,比作為正常輸入數(shù)據(jù)的結(jié)束標(biāo)志,比如選用一個(gè)負(fù)數(shù)作為結(jié)束標(biāo)志如選用一個(gè)負(fù)數(shù)作為結(jié)束標(biāo)志。精選課件精選課件第第19頁(yè)頁(yè)#include Int main(void) int num; double grade, total; num = 0; total = 0;printf(“Enter grades:
14、 n); scanf(%lf, &grade); /* 輸入第1個(gè)數(shù)*/while (grade = 0) /* 輸入負(fù)數(shù),循環(huán)結(jié)束 */ total = total + grade; num+; scanf (“%lf”, &grade);if(num != 0) printf(“Grade average is %.2fn, total/num);else printf( Grade average is 0n); return 0;Enter grades: 67 88 73 54 82 -1Grade average is 72.80Enter grades: -1 67 88 73
15、54 82Grade average is 0精選課件精選課件第第20頁(yè)頁(yè) do_while語(yǔ)句是另一種用于產(chǎn)生循環(huán)動(dòng)作的語(yǔ)句。語(yǔ)句是另一種用于產(chǎn)生循環(huán)動(dòng)作的語(yǔ)句。一般形式為:一般形式為:do while();功能:功能:先執(zhí)行一次先執(zhí)行一次,然后計(jì)算,然后計(jì)算的值,的值,若該值為若該值為“真真”,則重復(fù)以上的操作,直到該值為,則重復(fù)以上的操作,直到該值為“假假”,則退出循環(huán)語(yǔ)句,執(zhí)行下一條語(yǔ)句。則退出循環(huán)語(yǔ)句,執(zhí)行下一條語(yǔ)句。 do_while語(yǔ)句的流程圖語(yǔ)句的流程圖 :精選課件精選課件第第21頁(yè)頁(yè)應(yīng)該是用一對(duì)花括號(hào)括起來(lái)的復(fù)合應(yīng)該是用一對(duì)花括號(hào)括起來(lái)的復(fù)合語(yǔ)句。語(yǔ)句。注意注意 :要有可以使
16、要有可以使的值為的值為“假假”(即(即的的值等于零)的語(yǔ)句,否則會(huì)使程序出現(xiàn)無(wú)限循環(huán)而值等于零)的語(yǔ)句,否則會(huì)使程序出現(xiàn)無(wú)限循環(huán)而發(fā)生錯(cuò)誤。發(fā)生錯(cuò)誤。do_while循環(huán)與循環(huán)與while循環(huán)的循環(huán)的區(qū)別區(qū)別,不論情況怎樣,不論情況怎樣,do_while循環(huán)中的循環(huán)中的至少會(huì)執(zhí)行一次。至少會(huì)執(zhí)行一次。精選課件精選課件第第22頁(yè)頁(yè)【例【例5-7】 將例將例5-6用用do_while語(yǔ)語(yǔ)句重寫(xiě)句重寫(xiě)。精選課件精選課件第第23頁(yè)頁(yè)#include Int main(void) int num; double grade, total; num = 0; total = 0; do printf(“E
17、nter grades:); scanf (“%lf”, &grade); total = total + grade; num+; while (grade = 0) ; /* 輸入負(fù)數(shù),循環(huán)結(jié)束 */ printf(“Grade average is %.2fn, (total+1)/(num-1); return 0;Enter grades: 67 88 73 54 82 -1Grade average is 72.80Enter grades: -1 67 88 73 54 82Grade average is 0精選課件精選課件第第24頁(yè)頁(yè)【例【例5-8】求】求sin(x)=x-x
18、3/3!+x5/5!-x7/7!+直到直到最后一項(xiàng)絕對(duì)值小于最后一項(xiàng)絕對(duì)值小于le-7(即(即10-7)為止。)為止。分析:分析: 多項(xiàng)式從第二項(xiàng)起,每一項(xiàng)都是前一項(xiàng)乘以一個(gè)因子,多項(xiàng)式從第二項(xiàng)起,每一項(xiàng)都是前一項(xiàng)乘以一個(gè)因子, (-x2)/(n*(n-1) (n=3,5,7,9) 用用s代表代表sin(x)的值,的值,t代表每一項(xiàng)的值,代表每一項(xiàng)的值, 則:則:t=t*(-x2) / (n*(n-1); s=s+t; x的值是用弧度值表示的的值是用弧度值表示的 (10= 180弧度弧度),如:,如: 300 0.523598775 算法流程圖如后圖:算法流程圖如后圖: 精選課件精選課件第第2
19、5頁(yè)頁(yè)精選課件精選課件第第26頁(yè)頁(yè)/*exam5_8.c 求求sin(x)的值的值*/#include #include main()double s,t,x;int n=1;scanf(%lf,&x);t=x;s=x;don=n+2;t=t*(-x*x)/(n*(n-1);s=s+t;while(fabs(t)=1e-7);printf(sin(%lf)=%lfn,x,s);程序運(yùn)行結(jié)果程序運(yùn)行結(jié)果:1.57 sin(1.570000)=1.000000 精選課件精選課件第第27頁(yè)頁(yè) while 是先判別條件,再?zèng)Q定是否循環(huán); do-while 是先至少循環(huán)一次,然后再根據(jù)循環(huán)的結(jié)果決定是否
20、繼續(xù)循環(huán)。while 和 do-while 的比較真真假假表達(dá)式表達(dá)式循環(huán)體語(yǔ)句循環(huán)體語(yǔ)句do-while的下一條語(yǔ)句的下一條語(yǔ)句真真假假while的下一條語(yǔ)句的下一條語(yǔ)句表達(dá)式表達(dá)式循環(huán)體語(yǔ)句循環(huán)體語(yǔ)句精選課件精選課件第第28頁(yè)頁(yè) 循環(huán)語(yǔ)句的選擇if(循環(huán)次數(shù)已知) 使用for語(yǔ)句else /* 循環(huán)次數(shù)未知 */if (循環(huán)條件在進(jìn)入循環(huán)時(shí)明確)使用while語(yǔ)句else /* 循環(huán)條件需要在循環(huán)體中明確 */使用do-while語(yǔ)句精選課件精選課件第第29頁(yè)頁(yè) 一、一、break語(yǔ)句語(yǔ)句 break語(yǔ)句的語(yǔ)句的作用作用是從一種控制結(jié)構(gòu)中跳出來(lái)是從一種控制結(jié)構(gòu)中跳出來(lái) 。break語(yǔ)句可用
21、于循環(huán)結(jié)構(gòu),其作用是語(yǔ)句可用于循環(huán)結(jié)構(gòu),其作用是從本層循環(huán)結(jié)構(gòu)中從本層循環(huán)結(jié)構(gòu)中跳出,跳出,可以提前結(jié)束執(zhí)行可以提前結(jié)束執(zhí)行,執(zhí)行循環(huán)結(jié)構(gòu),執(zhí)行循環(huán)結(jié)構(gòu)外的下一條語(yǔ)句。外的下一條語(yǔ)句。 break語(yǔ)句的一般形式為:語(yǔ)句的一般形式為: break; break語(yǔ)句在循環(huán)語(yǔ)句體中的語(yǔ)句在循環(huán)語(yǔ)句體中的位置位置應(yīng)根據(jù)程序的需要而定,應(yīng)根據(jù)程序的需要而定,一般是用在循環(huán)體內(nèi)一般是用在循環(huán)體內(nèi)某一個(gè)某一個(gè)if條件分支的語(yǔ)句中條件分支的語(yǔ)句中,用來(lái)表,用來(lái)表示在循環(huán)過(guò)程中當(dāng)某一個(gè)條件成立時(shí)提前結(jié)束循環(huán)。示在循環(huán)過(guò)程中當(dāng)某一個(gè)條件成立時(shí)提前結(jié)束循環(huán)。 精選課件精選課件第第30頁(yè)頁(yè) 程序解析判斷素?cái)?shù)算法:除了
22、1和m,不能被其它數(shù)整除。設(shè) i 取值 2, m-1 如果m不能被該區(qū)間上的任何一個(gè)數(shù)整除,即對(duì)每個(gè)i,m%i 都不為0,則m是素?cái)?shù) 只要找到一個(gè)i,使m%i為0,則m肯定不是素?cái)?shù)m %2 %3 %4 %5 %(m-1)不是素?cái)?shù) | =0 =0是素?cái)?shù) & !=0 !=0 m不可能被大于 m/2 的數(shù)整除 i 取值 2, m-1 、 2, m/2 、 2, mfor(i = 2; i m/2) printf(yesn)else printf(non”);精選課件精選課件第第31頁(yè)頁(yè)int main(void) int i, m;printf(“Enter a number: );scanf (%
23、d, &m);for (i = 2; i m/2 ) printf(%d is a prime number! n, m); else printf(No!n); 源程序判斷素?cái)?shù)Enter a number: 9NoEnter a number: 1111 is a prime number!循環(huán)條件循環(huán)條件?循環(huán)的結(jié)束條件循環(huán)的結(jié)束條件?精選課件精選課件第第32頁(yè)頁(yè)break 語(yǔ)句while(exp) 語(yǔ)句1 if (expb) break; 語(yǔ)句2真真假假 exp 語(yǔ)句語(yǔ)句1假假 expb 語(yǔ)語(yǔ) 句句2循環(huán)體循環(huán)體真真for (i = 2; i m/2 ) printf(Yes); els
24、e printf(No!n); 當(dāng)循環(huán)有多個(gè)出口時(shí):當(dāng)循環(huán)有多個(gè)出口時(shí): 表示循環(huán)條件表示循環(huán)條件 區(qū)分結(jié)束條件區(qū)分結(jié)束條件for(i = 2; i = m/2; i+) if(m%i = 0) printf(No!n); break; printf(Yes); 精選課件精選課件第第33頁(yè)頁(yè)二、二、Continue語(yǔ)句語(yǔ)句 Continue語(yǔ)句只適用于循環(huán)結(jié)構(gòu),其一般形式為:語(yǔ)句只適用于循環(huán)結(jié)構(gòu),其一般形式為: 作用:提前結(jié)束本次循環(huán)作用:提前結(jié)束本次循環(huán),提前,提前進(jìn)行下一次循環(huán)進(jìn)行下一次循環(huán)?!纠纠?-10】編寫(xiě)程序,打印】編寫(xiě)程序,打印100200中不能被中不能被3整除的數(shù)。整除的數(shù)。
25、/*exam5_10.c 求不能被求不能被3整除的數(shù)整除的數(shù)*/#include main()int n;for(n=100;n=200;n+)if(n%3=0)continue;printf(%dt,n);精選課件精選課件第第34頁(yè)頁(yè)算法流程圖如圖算法流程圖如圖 :要準(zhǔn)確地使用要準(zhǔn)確地使用break語(yǔ)句和語(yǔ)句和continue語(yǔ)句語(yǔ)句,除非有必要除非有必要,否則否則若可以不用則若可以不用則盡量盡量不采用不采用break語(yǔ)句和語(yǔ)句和continue語(yǔ)句。語(yǔ)句。 精選課件精選課件第第35頁(yè)頁(yè)對(duì)于例對(duì)于例5-10的的問(wèn) 題 ,問(wèn) 題 , 打 印打 印100200中中不能被不能被3整除整除的 數(shù) 。
26、的 數(shù) 。 不 采不 采用用continue語(yǔ)語(yǔ)句 的 算 法 流句 的 算 法 流程 圖 如 圖 所程 圖 如 圖 所示:示:精選課件精選課件第第36頁(yè)頁(yè)/*exam5q10.c 例例5-10問(wèn)題不用問(wèn)題不用continue *#include main()int n;for(n=100;n=200; n+) if(n%3 !=0) /*n不能被不能被3整除整除*/printf(%d,n);精選課件精選課件第第37頁(yè)頁(yè)【例【例5-11】 break語(yǔ)句和語(yǔ)句和continue語(yǔ)句在程序中的區(qū)別語(yǔ)句在程序中的區(qū)別/*exam5_11.c break的作用的作用*/#include main()
27、int x;for(x=1;x=10;+x) if(x=5) break; printf(%d,x);運(yùn)行結(jié)果運(yùn)行結(jié)果: 1,2,3,4,/*exam5q11.c continue的作用的作用*/#include main() int x;for(x=1;x=10;+x)if(x=5)continue;printf(%d,x);運(yùn)行結(jié)果運(yùn)行結(jié)果:1,2,3,4,6,7,8,9,10,精選課件精選課件第第38頁(yè)頁(yè) 循環(huán)結(jié)構(gòu)的嵌套,指的是某一種循環(huán)結(jié)構(gòu)的語(yǔ)句中,循環(huán)結(jié)構(gòu)的嵌套,指的是某一種循環(huán)結(jié)構(gòu)的語(yǔ)句中,包含包含有另一個(gè)循環(huán)結(jié)構(gòu)。有另一個(gè)循環(huán)結(jié)構(gòu)。 使用嵌套的結(jié)構(gòu)時(shí),要注意嵌套的層次,使用嵌套的
28、結(jié)構(gòu)時(shí),要注意嵌套的層次,不能交叉不能交叉。例5.12 求1! + 2! + . + 100!精選課件精選課件第第39頁(yè)頁(yè)嵌套循環(huán)for (i = 1; i = 100; i+) item = i ! sum = sum + item;for(i = 1; i = 100; i+) item = 1; for (j = 1; j = i; j+) item = item * j; sum = sum + item; 精選課件精選課件第第40頁(yè)頁(yè)例4-6 源程序#include int main(void) int i, j;double item, sum; /* item 存放階乘 */su
29、m = 0; for(i = 1; i = 100; i+) item = 1; /* 每次求階乘都從1開(kāi)始 */ for (j = 1; j = i; j+) /* 內(nèi)層循環(huán)算出 item = i! */ item = item * j; sum = sum + item; printf(1! + 2! + 3! + + 100! = %en, sum);精選課件精選課件第第41頁(yè)頁(yè)內(nèi)層循環(huán)的初始化for(i = 1; i = 100; i+) item = 1; for (j = 1; j = i; j+) item = item * j; sum = sum + item; 求求1! +
30、 2! + . + 100!item = 1;for(i = 1; i = 100; i+) for (j = 1; j = i; j+) item = item * j; sum = sum + item; 求求1! + 1!*2! + + 1!*2!*100! ? 精選課件精選課件第第42頁(yè)頁(yè)分析嵌套循環(huán)的執(zhí)行過(guò)程for(i = 1; i = 100; i+) item = 1; for (j = 1; j = i; j+) item = item * j; sum = sum + item; n 外層循環(huán)變量外層循環(huán)變量 i 的每個(gè)值的每個(gè)值內(nèi)層循環(huán)變量?jī)?nèi)層循環(huán)變量 j 變化一個(gè)輪次;變
31、化一個(gè)輪次;n 內(nèi)外層循環(huán)變量不能相同內(nèi)外層循環(huán)變量不能相同分別用分別用 i 和和 j精選課件精選課件第第43頁(yè)頁(yè)i = 1j = 1輸出 1 1 (第1次輸出)j = 1輸出 2 1 (第2次輸出)i = 2j = 2輸出 2 2 (第3次輸出)j = 1輸出 100 1 (第4951次輸出)j = 2輸出 100 2 (第4952次輸出)i = 100j = 100輸出 100 100 (第5050次輸出)for (i = 1; i = 100; i+) for (j = 1; j = i; j+) printf (%d %dn, i, j );精選課件精選課件第第44頁(yè)頁(yè) goto語(yǔ)句是
32、一種語(yǔ)句是一種無(wú)條件轉(zhuǎn)向語(yǔ)句無(wú)條件轉(zhuǎn)向語(yǔ)句,它可以用在程序的任,它可以用在程序的任何地方,其一般形式為:何地方,其一般形式為:goto 語(yǔ)句標(biāo)號(hào);語(yǔ)句標(biāo)號(hào);“語(yǔ)句標(biāo)號(hào)語(yǔ)句標(biāo)號(hào)”為任何合法的標(biāo)識(shí)符,放在某個(gè)語(yǔ)句前面為任何合法的標(biāo)識(shí)符,放在某個(gè)語(yǔ)句前面并加上冒號(hào)并加上冒號(hào)“:”作為語(yǔ)句的標(biāo)號(hào),標(biāo)號(hào)只對(duì)作為語(yǔ)句的標(biāo)號(hào),標(biāo)號(hào)只對(duì)goto 語(yǔ)句語(yǔ)句有意義,帶有標(biāo)號(hào)的語(yǔ)句被稱作標(biāo)號(hào)語(yǔ)句。有意義,帶有標(biāo)號(hào)的語(yǔ)句被稱作標(biāo)號(hào)語(yǔ)句。如:如:error: 、end:、exp:等均為合法的語(yǔ)句的標(biāo)號(hào)。等均為合法的語(yǔ)句的標(biāo)號(hào)。goto語(yǔ)句的語(yǔ)句的作用作用:轉(zhuǎn)到標(biāo)號(hào)語(yǔ)句所在的地方繼續(xù)執(zhí)行。:轉(zhuǎn)到標(biāo)號(hào)語(yǔ)句所在的地方繼續(xù)執(zhí)行
33、。精選課件精選課件第第45頁(yè)頁(yè)【例【例5-13】用】用if語(yǔ)句和語(yǔ)句和goto語(yǔ)句組合構(gòu)成的循環(huán)重語(yǔ)句組合構(gòu)成的循環(huán)重寫(xiě)計(jì)算器寫(xiě)計(jì)算器 的程序。的程序。1001ii/*exam5_13.c if+goto構(gòu)成循環(huán)構(gòu)成循環(huán)*/#include main()int i,sum=0;i=1;loop:if(i=100) sum=sum+i;i+;goto loop; printf(sum=%d,sum);程序運(yùn)行結(jié)果:程序運(yùn)行結(jié)果:sum=5050精選課件精選課件第第46頁(yè)頁(yè) 【例【例5-16】打印出】打印出ASC碼序列中從碼序列中從33127(十進(jìn)制)(十進(jìn)制)的字符對(duì)照表。的字符對(duì)照表。/*ex
34、am5_16.c 打印部分打印部分ASCII碼字符碼字符*/#include main()int i;for (i=33; i128; i+)printf(%d - %ct,i,i);精選課件精選課件第第47頁(yè)頁(yè)【例【例5-17】設(shè)公雞每只】設(shè)公雞每只5元,母雞每只元,母雞每只3元,小雞每元元,小雞每元3只,現(xiàn)用只,現(xiàn)用100元錢(qián)買(mǎi)元錢(qián)買(mǎi)100只雞,編寫(xiě)一個(gè)程序,算出可只雞,編寫(xiě)一個(gè)程序,算出可以各買(mǎi)多少只雞?以各買(mǎi)多少只雞?#include main() int i,j,k; for(i=0; i*5=100; i+) for(j=0; j*3=100; j+) for(k=0; k/3=1
35、00; k+=3) if(i*5+j*3+k/3)=100 & (i+j+k)=100) printf(Cock - %dtHen -%dtChicken - %dn,i,j,k);精選課件精選課件第第48頁(yè)頁(yè)程序運(yùn)行結(jié)果程序運(yùn)行結(jié)果:Cock - 0 Hen - 25 Chicken - 75Cock - 4 Hen - 18 Chicken - 78Cock - 8 Hen - 11 Chicken - 81Cock - 12 Hen - 4 Chicken - 84精選課件精選課件第第49頁(yè)頁(yè)小結(jié)小結(jié) :三種循環(huán)結(jié)構(gòu):三種循環(huán)結(jié)構(gòu):for、while和和do_while循環(huán)。循環(huán)。當(dāng)循環(huán)次數(shù)是肯定的情況下,用當(dāng)循環(huán)次數(shù)是肯定的情況下,用for循環(huán)比較方便。循環(huán)比較方便。 while循環(huán)循環(huán)和和for循環(huán)循環(huán)都要都要先判斷條件先判斷條件再執(zhí)行循環(huán)語(yǔ)句再執(zhí)行循環(huán)語(yǔ)句體,因此,有可能一次也不執(zhí)行循環(huán)語(yǔ)句體。體,因此,有可能一次也不執(zhí)行循環(huán)語(yǔ)句體。do_while循環(huán)循環(huán)不論怎樣不論怎樣都會(huì)先執(zhí)行都會(huì)先執(zhí)行一次循環(huán)語(yǔ)句體。一次循環(huán)語(yǔ)句體。注意避免以下幾個(gè)方面的問(wèn)題:注意避免以下幾個(gè)方面的問(wèn)題:1循環(huán)語(yǔ)句體
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024幼兒園保育員幼兒活動(dòng)組織與實(shí)施合同2篇
- 2024年高端人才引進(jìn)保密合同
- 2024年標(biāo)準(zhǔn)版土方工程車(chē)輛租賃合同版
- 2024年藝術(shù)品交易合作合同
- 2025年度文化創(chuàng)意產(chǎn)業(yè)廠房股權(quán)置換與合資經(jīng)營(yíng)合同3篇
- 2024年度家庭財(cái)產(chǎn)贈(zèng)與法律咨詢合同3篇
- 2024年綠色能源發(fā)電項(xiàng)目投資與合作合同
- 2024防火門(mén)供貨及安裝合同
- 2024正規(guī)企業(yè)資源規(guī)劃開(kāi)發(fā)合同范本2篇
- 2024年餐飲項(xiàng)目三位股東權(quán)益分配合同版B版
- 國(guó)家自然科學(xué)基金申請(qǐng)書(shū)模板三篇
- (醫(yī)學(xué)課件)護(hù)理人文關(guān)懷
- 數(shù)據(jù)采集服務(wù)委托合同
- DB11T 1833-2021 建筑工程施工安全操作規(guī)程
- 信息檢索課件 第2章 文獻(xiàn)檢索方法(1)-2
- 河長(zhǎng)制工作總結(jié)報(bào)告5篇河長(zhǎng)制年度工作總結(jié)
- 第二期專(zhuān)題04-短文填空(6選5)-沖刺中考英語(yǔ)必考題型終極預(yù)測(cè)(深圳專(zhuān)用)
- 民間借貸利息計(jì)算表
- 《白描花卉妙筆生》 課件 2024-2025學(xué)年嶺南美版(2024) 初中美術(shù)七年級(jí)上冊(cè)
- 2025年公務(wù)員考試申論試題與參考答案
- 2024年秋季新人教PEP版三年級(jí)上冊(cè)英語(yǔ)全冊(cè)教案
評(píng)論
0/150
提交評(píng)論