版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、5.1 概述c語(yǔ)言可實(shí)現(xiàn)循環(huán)的語(yǔ)句:l用goto 和 if 構(gòu)成循環(huán)lwhile 語(yǔ)句ldo while 語(yǔ)句lfor 語(yǔ)句5.2 goto語(yǔ)句及用goto構(gòu)成循環(huán)無(wú)條件轉(zhuǎn)向goto語(yǔ)句一般格式:goto 語(yǔ)句標(biāo)號(hào);第五章 循環(huán)控制v說(shuō)明:l語(yǔ)句標(biāo)號(hào)用標(biāo)識(shí)符表示,不能用整數(shù)l結(jié)構(gòu)化程序設(shè)計(jì)限制使用goto語(yǔ)句例 5.1 用if 和goto語(yǔ)句構(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語(yǔ)句一起構(gòu)成循環(huán)結(jié)構(gòu)l從循環(huán)體中跳轉(zhuǎn)到循環(huán)體外while語(yǔ)句v一般形式:while(表達(dá)式) 循環(huán)體語(yǔ)句;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說(shuō)明:l循環(huán)變量應(yīng)有一個(gè)初值l循環(huán)體有可能一次也不執(zhí)行l(wèi)循環(huán)體可為任意類型語(yǔ)句l循環(huán)體如
3、果包含一個(gè)以上的語(yǔ)句,應(yīng)用花括號(hào)括起來(lái),以復(fù)合語(yǔ)句的形式出現(xiàn),否則,while語(yǔ)句的范圍只到while后第一個(gè)分號(hào)處l循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語(yǔ)句 如本例中的i+語(yǔ)句dowhile語(yǔ)句v一般形式:do 循環(huán)體語(yǔ)句; 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說(shuō)明: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語(yǔ)句v一般形式:for(表達(dá)式1 ; 表達(dá)式2 ;表達(dá)式3) 循環(huán)體語(yǔ)句;v執(zhí)行流程:真(非0)for表達(dá)式2循環(huán)體假(0)表達(dá)式1表達(dá)式3vfor語(yǔ)句一般應(yīng)用形式:for(循環(huán)變量賦初值;
5、循環(huán)條件;循環(huán)變量增值)循環(huán)體語(yǔ)句;v說(shuō)明:lfor語(yǔ)句可以轉(zhuǎn)換成while結(jié)構(gòu)lfor語(yǔ)句中表達(dá)式1,表達(dá)式2 ,表達(dá)式3 類型任意,都可省略,但分號(hào);不可省,表達(dá)式2 省略時(shí),不判斷循環(huán)條件,也就是認(rèn)為表達(dá)式2始終為真l三個(gè)表達(dá)式可都省略: for(; ;)表達(dá)式1;while(表達(dá)式2)循環(huán)體語(yǔ)句;表達(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也可以是逗號(hào)表達(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 輔助控制語(yǔ)句break語(yǔ)句v功能:在循環(huán)語(yǔ)句和switch語(yǔ)句中,終止并跳出循環(huán)體或跳出switch結(jié)構(gòu)v說(shuō)明:lbreak只能終止并跳出最近一層的結(jié)構(gòu)lbreak不能用于循環(huán)語(yǔ)句和switch語(yǔ)句之外的任何其它語(yǔ)句之中l(wèi)if和goto構(gòu)成的循環(huán)語(yǔ)句中不能用break語(yǔ)句表達(dá)式break;假(0)真(非0)whiledobreak;.表達(dá)式假(0)真(非0
10、)while表達(dá)式2break;.假(0)真(非0)for表達(dá)式1expr3switch表達(dá)式語(yǔ)句組1break;語(yǔ)句組2break;語(yǔ)句組nbreak;語(yǔ)句組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語(yǔ)句v功能:結(jié)束本次循環(huán),跳過(guò)循環(huán)體中尚未執(zhí)行的語(yǔ)句,進(jìn)行下一次是否執(zhí)行循環(huán)體的判斷v僅用于循環(huán)語(yǔ)句中表達(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)的絕對(duì)值小于的近似值,直到公式求用例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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版?zhèn)€體廂貨車出租及車輛監(jiān)控系統(tǒng)合同3篇
- 2025版土地居間業(yè)務(wù)規(guī)范化合同書(2025版)6篇
- 2025版建筑塑料材料買賣合同范本解讀3篇
- 《手機(jī)送分析》課件
- 【中學(xué)課件】香港和澳門
- 二零二五版汽車銷售退換貨處理合同模板2篇
- 二零二五版智慧城市建設(shè)項(xiàng)目工程勘察設(shè)計(jì)勞務(wù)分包合同3篇
- 家用紡織品的消費(fèi)趨勢(shì)與市場(chǎng)需求預(yù)測(cè)考核試卷
- 《波爾多液配制》課件
- 2025版事業(yè)單位聘用合同起草與審查要點(diǎn)3篇
- 2024-2025學(xué)年山東省濰坊市高一上冊(cè)1月期末考試數(shù)學(xué)檢測(cè)試題(附解析)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長(zhǎng)郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 幼兒園人民幣啟蒙教育方案
- 高考介詞練習(xí)(附答案)
- 單位就業(yè)人員登記表
- 衛(wèi)生監(jiān)督協(xié)管-醫(yī)療機(jī)構(gòu)監(jiān)督
- 記錄片21世紀(jì)禁愛(ài)指南
- 腰椎間盤的診斷證明書
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)七 裂變傳播
- 單級(jí)倒立擺系統(tǒng)建模與控制器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論