資源描述:
《循環(huán)結(jié)構(gòu)程序設(shè)計ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、4.2.1while語句4.2.2do-while語句4.2.3for語句4.2.4轉(zhuǎn)移語句4.2.5循環(huán)的嵌套4.2.6循環(huán)結(jié)構(gòu)程序設(shè)計舉例4.2循環(huán)結(jié)構(gòu)程序設(shè)計安徽工程科技學院循環(huán)的概念當所要解決的問題存在重復執(zhí)行內(nèi)容時,應該使用循環(huán)結(jié)構(gòu)來實現(xiàn),具體的設(shè)計步驟可歸納如下。(1)構(gòu)造循環(huán)體。將問題中需要重復執(zhí)行的部分,利用C語言規(guī)則歸納出一組程序段。在歸納的過程中應充分利用變量是一個變化的量的概念。如本列中變量score在不同的時刻代表的是不同學生的成績。(2)尋找控制循環(huán)的變量。有的題目循環(huán)的次數(shù)是確定的,可以使用計數(shù)器來控制循環(huán);有的題目循環(huán)的次數(shù)不是確定的,那么使用計數(shù)器就不合
2、適了,設(shè)計者應從題目中去尋找規(guī)則變化的量來控制循環(huán)體完成規(guī)定的次數(shù)。(3)找出控制變量的3個要素。?循環(huán)控制變量的初值。?循環(huán)的條件。?使循環(huán)趨于結(jié)束的部分。4.2.1while語句while語句是實現(xiàn)當型結(jié)構(gòu)循環(huán)的語句,其一般形式為while(邏輯量)循環(huán)體語句其中,while是C語言的關(guān)鍵字,語句中的邏輯量為循環(huán)條件。while語句的流程圖如圖4.2所示。例4.3求1到100的和。根據(jù)流程圖寫出程序:main(){inti,sum;sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("%d",sum);}圖4.3例4.3的N-S流程圖例4
3、.4求n!。main(){floatfac;inti,n;fac=1;i=2;scanf("%d",&n);while(i<=n){fac=fac*i;i++;}printf("n!=%.0f",fac);}圖4.4例4.4的N-S流程圖4.2.2do-while語句do-while語句是實現(xiàn)直到型循環(huán)結(jié)構(gòu)的語句,其一般形式為:do循環(huán)體語句while(邏輯量);do-while語句的流程圖如圖4.6所示。例4.9求兩個數(shù)的最大公約數(shù)。(a)當型結(jié)構(gòu)(b)直到型結(jié)構(gòu)圖4.8例子的兩種結(jié)構(gòu)的N-S圖根據(jù)流程圖可得到程序:main()main(){{intm,n,r;intm,n,r;
4、scanf("%d,%d",&m,&n);scanf("%d,%d",&m,&n);if(m5、是賦值表達式。也允許在for語句外給循環(huán)變量賦初值,此時可以省略該表達式。表達式2通常是循環(huán)條件,一般為關(guān)系表達式或邏輯表達式,也可以是任意“確定的值”。表達式3通常是使循環(huán)趨于結(jié)束的部分,一般是賦值表達式。圖4.9for語句的傳統(tǒng)流程圖圖4.10for語句的N-S流程圖YN表達式2求解表達式1循環(huán)體語句循環(huán)的后續(xù)語句求解表達式32for(表達式1;表達式2;;表達式3)循環(huán)體語句求1到100的和。main(){inti,sum;sum=0;for(i=1;i<=100;i++)sum=sum+i;printf("%d",sum);}使用for語句應注意以下幾點。(1)for語句中
6、的各表達式都可省略,但間隔符分號不能省略。例如:for(;邏輯量;表達式3)省去了表達式1。for(表達式1;;表達式3)省去了表達式2。for(表達式1;邏輯量;)省去了表達式3。for(;;)省去了全部表達式。在循環(huán)變量已賦初值時,可省去表達式1。main(){inti,sum;sum=0;i=1;for(;i<=100;i++)sum=sum+i;printf("%d",sum);}可省去表達式3,應該在循環(huán)體部分增加使循環(huán)趨于結(jié)束部分。main(){inti,sum;sum=0;for(i=1;i<=100;){sum=sum+i;i++;}printf("%d",su
7、m);}省略表達式2,則循環(huán)條件一直為真,那么在循環(huán)體中應有循環(huán)結(jié)束語句,否則是死循環(huán)。省略表達式1和表達式3,for語句相當于while語句。main(){inti,sum;sum=0;i=1;for(;i<=100;){sum=sum+i;i++;}printf("%d",sum);}(2)表達式1和表達式3可以是逗號表達式main(){inti,sum;for(sum=0,i=1;i<=100;i++){sum=sum+i;}prin