c語言可實(shí)現(xiàn)循環(huán)的語句_第1頁
c語言可實(shí)現(xiàn)循環(huán)的語句_第2頁
c語言可實(shí)現(xiàn)循環(huán)的語句_第3頁
c語言可實(shí)現(xiàn)循環(huán)的語句_第4頁
c語言可實(shí)現(xiàn)循環(huán)的語句_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、5.1 概述c語言可實(shí)現(xiàn)循環(huán)的語句:l用goto 和 if 構(gòu)成循環(huán)lwhile 語句ldo while 語句lfor 語句5.2 goto語句及用goto構(gòu)成循環(huán)無條件轉(zhuǎn)向goto語句一般格式:goto 語句標(biāo)號;第五章 循環(huán)控制v說明:l語句標(biāo)號用標(biāo)識符表示,不能用整數(shù)l結(jié)構(gòu)化程序設(shè)計(jì)限制使用goto語句例 5.1 用if 和goto語句構(gòu)成循環(huán),求1001nnmain() int i,sum=0; i=1;loop: if(i=100) sum+=i; i+; goto loop; printf(%d,sum);sum=0+1sum=1+2=3sum=3+3=6sum=6+4sum=49

2、50+100=5050循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體v用途:l與if語句一起構(gòu)成循環(huán)結(jié)構(gòu)l從循環(huán)體中跳轉(zhuǎn)到循環(huán)體外while語句v一般形式:while(表達(dá)式) 循環(huán)體語句;v執(zhí)行流程:表達(dá)式循環(huán)體假(0)真(非0)while例5.2 用while循環(huán)求 1001nn#include main() int i,sum=0; i=1; while(i=100) sum=sum+i; i+; printf(%d,sum);循環(huán)初值循環(huán)終值循環(huán)變量增值循環(huán)條件循環(huán)體v特點(diǎn):先判斷表達(dá)式,后執(zhí)行循環(huán)體v說明:l循環(huán)變量應(yīng)有一個(gè)初值l循環(huán)體有可能一次也不執(zhí)行l(wèi)循環(huán)體可為任意類型語句l循環(huán)體如

3、果包含一個(gè)以上的語句,應(yīng)用花括號括起來,以復(fù)合語句的形式出現(xiàn),否則,while語句的范圍只到while后第一個(gè)分號處l循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語句 如本例中的i+語句dowhile語句v一般形式:do 循環(huán)體語句; while(表達(dá)式);v執(zhí)行流程:do循環(huán)體表達(dá)式假(0)真(非0)while例5.3 用dowhile循環(huán)求 1001nn#include main() int i,sum=0; i=1; do sum+=i;i+; while(i=100); printf(%d,sum);v特點(diǎn):先執(zhí)行循環(huán)體,后判斷表達(dá)式v說明:l至少執(zhí)行一次循環(huán)體ldowhile可轉(zhuǎn)化成while結(jié)構(gòu)

4、表達(dá)式循環(huán)體假(0)真(非0)循環(huán)體while循環(huán)例 5.4 while和dowhile比較main() int i,sum=0; scanf(%d,&i); do sum+=i;i+; while(i=10); printf(%d,sum);main() int i,sum=0; scanf(%d,&i); while(i=10) sum+=i;i+; printf(%d,sum);for語句v一般形式:for(表達(dá)式1 ; 表達(dá)式2 ;表達(dá)式3) 循環(huán)體語句;v執(zhí)行流程:真(非0)for表達(dá)式2循環(huán)體假(0)表達(dá)式1表達(dá)式3vfor語句一般應(yīng)用形式:for(循環(huán)變量賦初值;

5、循環(huán)條件;循環(huán)變量增值)循環(huán)體語句;v說明:lfor語句可以轉(zhuǎn)換成while結(jié)構(gòu)lfor語句中表達(dá)式1,表達(dá)式2 ,表達(dá)式3 類型任意,都可省略,但分號;不可省,表達(dá)式2 省略時(shí),不判斷循環(huán)條件,也就是認(rèn)為表達(dá)式2始終為真l三個(gè)表達(dá)式可都省略: for(; ;)表達(dá)式1;while(表達(dá)式2)循環(huán)體語句;表達(dá)式3;例_1 用for循環(huán)求 1001nn#include main() int i,sum=0; for(i=1;i=100;i+) sum+=i; printf(%d,sum);for (i=1; ;i+)sum=sum+i;i=1;for (;i=100 ;i+)sum=sum+i;

6、for ( i=1;i=100 ;)sum=sum+i; i+; i=1;for (;i=100 ;)sum=sum+i; i +例_2:#include main( ) int i; for(i=0;i10;i+) putchar(a+i); 運(yùn)行結(jié)果:abcdefghij例_3:#include main( ) int i=0; for(;i10;i+) putchar(a+i); 例_4:#include main( ) int i=0; for(;i10;) putchar(a+(i+); 例_6:main() int i,j,k; for(i=0,j=100;i=j;i+,j-) k

7、+=i*j; printf(%d+%d=%dn,i,j,k);表達(dá)式1,3也可以是逗號表達(dá)式例_5:main() int i,j,sum; for(sum=0,i=1;i=100;i+) sum=sum+i; printf(%dn,sum);例_8:#includemain() char c; for(;(c=getchar()!=n;) printf(%c ,c);例_7:#includemain() int i,c; for(i=0;(c=getchar()!=n;i+=c); printf(%d ,i);表達(dá)式2可以是關(guān)系或邏輯表達(dá)式,也可以是其它類型的表達(dá)式,只要其值非0,就執(zhí)行循環(huán)體

8、循環(huán)的嵌套v三種循環(huán)可互相嵌套,層數(shù)不限v外層循環(huán)可包含兩個(gè)以上內(nèi)循環(huán)v嵌套循環(huán)的執(zhí)行流程(1) while() while() . (2) do do while( ); . while( );(3) while() do while( ); . (4) for( ; ;) do while(); while() .內(nèi)循環(huán)外循環(huán)內(nèi)循環(huán)123456789.12345678912468101214161823691215182124273918273645546372819 例 循環(huán)嵌套,輸出九九表ij例_9:#include main() int i,j; printf(“ ”); for(i

9、=1;i10;i+) printf(%4d,i); printf(n-n); for(i=1;i10;i+) printf(“%d”,i); for(j=1;j10;j+) printf(%4d,i*j); printf(“n”); 4.5 輔助控制語句break語句v功能:在循環(huán)語句和switch語句中,終止并跳出循環(huán)體或跳出switch結(jié)構(gòu)v說明:lbreak只能終止并跳出最近一層的結(jié)構(gòu)lbreak不能用于循環(huán)語句和switch語句之外的任何其它語句之中l(wèi)if和goto構(gòu)成的循環(huán)語句中不能用break語句表達(dá)式break;假(0)真(非0)whiledobreak;.表達(dá)式假(0)真(非0

10、)while表達(dá)式2break;.假(0)真(非0)for表達(dá)式1expr3switch表達(dá)式語句組1break;語句組2break;語句組nbreak;語句組break;.const 1const 2const ndefaultcase 例_10:輸出圓面積,面積大于100時(shí)停止#define pi 3.14159main() int r; float area; for(r=1;r100) break; printf(r=%d,area=%.2fn,r,area); 例_11:小寫字母轉(zhuǎn)換成大寫字母,直至輸入非字母字符#include main() int i,j; char c; whi

11、le(1) c=getchar(); if(c=a & c=z) putchar(c-a+a); else break; continue語句v功能:結(jié)束本次循環(huán),跳過循環(huán)體中尚未執(zhí)行的語句,進(jìn)行下一次是否執(zhí)行循環(huán)體的判斷v僅用于循環(huán)語句中表達(dá)式continue;假(0)真(非0)while真(非0)docontinue;.表達(dá)式假(0)while表達(dá)式2continue;.假(0)真(非0)for表達(dá)式1表達(dá)式3例_12 求輸入的十個(gè)整數(shù)中正數(shù)的個(gè)數(shù)及其平均值#include main() int i,num=0,a; float sum=0; for(i=0;i10;i+) sca

12、nf(%d,&a);if(a=0) continue;num+;sum+=a; printf(%d plus integers sum :%6.0fn,num,sum); printf(mean value:%6.2fn,sum/num);例5.5 把100200之間的不能被3整除的數(shù)輸出main() int n; for(n=100;n=200;n+) if(n%3= =0) continue;printf(%dn,n); 程序舉例為止最后一項(xiàng)的絕對值小于的近似值,直到公式求用例610715131146 . 5t=1,pi=0,n=1.0,s=1當(dāng)|t|1e-6pi=pi+tn=n+

13、2s=-st=s/npi=pi*4輸出pi分子:1,-1,1,-1分母:1,3,5,7,.#include main() int s; float n,t,pi; t=1; pi=0; n=1.0; s=1; while(fabs(t)=1e-6) pi=pi+t; n=n+2; s=-s; t=s/n; pi=pi*4; printf(pi=%10.6fn,pi);例5.7 求fibonacci數(shù)列:1,1,2,3,5,8,的前40個(gè)數(shù))3()2(12) 1(1121nfffnfnfnnnf1=1,f2=1for i=1 to 20輸出f1,f2f1=f1+f2f2=f2+f11534233

14、159710946750255142293524578241578171855377258417711121393832040570288739088169213896104181286571964181346269922746563245986321144987676546368317811217830914930352102334155main() long int f1,f2; int i; f1=1;f2=1; for(i=1;i=20;i+) printf(“%12ld%12ld”,f1,f2);if(n%2= =0) printf(“n”);f1=f1+f2; f2=f2+f1; 例5.8 判斷m是否素?cái)?shù)讀入mk=mi=2當(dāng)ikm被i整除真假用break結(jié)束循環(huán)i=i+1ik+1真假輸出:m”是素?cái)?shù)”輸出:m”不是素?cái)?shù)”#include main() int m,i,k,n=0; for(m=101;m=200;m=m+2) k=sqrt(m); for(i=2;i=k+1) printf(%d ,m);n=n+1; if(n%10=0) printf(n); printf(n);#include main() int m,i,k; scanf(%d,&m); k=sqr

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。