网站大量收购独家精品文档,联系QQ:2885784924

第六章回圈结构.doc

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章回圈结构

第六章 迴圈敘述 前面第四、五兩章,我們已經介紹如何輸入一個人的成績,及判斷一個人的成績是否及格,也介紹如何輸入多人成績、多人成績的極大值及排序等問題。我們發現,當人數只要一多,寫起程式來真是洋洋灑灑,程式設計的領域果真如此磨人嗎?所幸,答案是否定的。因為本章要介紹一個高效率的敘述,此稱為迴圈敘述。C語言常用的迴圈敘述分別是for 與while。其次,也使用break,continue和goto來控制迴圈中的跳躍動作。 6-1 for 若於程式設計階段已知迴圈的執行次數,則可使用for敘述,for敘述的語法如下:   for([計數變數=起始值] ;[迴圈運算式];[計數變數的改變量]) { [敘述區塊1;] [break;] [continue;] [goto (標籤名稱);] [敘述區塊2;] } 以上語法說明如下: 1. 只要“迴圈運算式”結果為1(真),則繼續執行迴圈內的敘述區塊。 計數變數應該為合法的識別字。 計數變數的改變量,可為正或負的整數或實數,正整數請看範例6-1a,負實數請看範例6-1b。 3. 程式若執行到break,則會提早離開for迴圈,請看範例6-1c。 程式若執行到continue,則會略過continue下面的敘述區塊2,繼續執行下一個計數變量,請看範例6-1c 程式若執行到goto,則會略過goto下面的敘述區塊2,跳躍至 (標籤名稱) 所在的位置,繼續執行標籤以下的敘述區塊,請看範例6-1c。 以下程式片段可印出1至10。 for ( i=1;i=10;i++) { printf(“%d”, i); } 6. for敘述若只有一個敘述,則大括號可省略。例如,以上敘述同於 for ( i=1;i=10;i++) printf(“%d”, i); 但以下敘述的j++並不包含於迴圈,它只含被執行一次。 for ( i=1;i=10;i++) printf(“%d”, i); j++; 7. 敘述區塊內可以放置任何合法的敘述,當然也可含for。for內有for,稱為巢狀迴圈。例如,以下敘述可印出1至10 五次,請看6_2節。 for ( i=1;i=5;i++) { for (j=1;j=10;j++) printf(“%d”, i); } 範例6-1a 請寫一個程式,印出1至10,並求其和。 【執行結果】 【程式列印】 【程式說明】 1. C語言並不會自動將所宣告變數的初值設為0,所以若要執行累加的變數,務必自己親自設定其初值。 2. i++的效果同i=i+1,但其寫法較簡潔。 for(i=1;i=10;i++)表示只要i=10就會執行迴圈的敘述區塊,若寫成for(i=1;i==10;i++),則迴圈運算式僅於i=10時結果為true,i=1至9均得到false,不會執行迴圈內的敘述區塊,此為C語言與一般語言最大的差異,請讀者務必小心。 【自我練習】 請寫一程式,計算1+3+5+7+9之和。 請寫一程式,計算6+16+26+36+46之和。 請寫一程式,計算之和。 範例6-1b 試求2.1+1.9+1.7+.…+(-7.1)之和。 【執行結果】 【程式列印】 【程式說明】 1. 迴圈的起始值、運算式及計數變數的改變量都可為整數或浮點數,本例之起始值為2.1,迴圈運算式為大於等於-7.1,改變量為-0.2。 請務必留意,當改變量為負時,迴圈運算式為大於等於;而前例改變量為正時,迴圈運算式為小於等於。 【自我練習】 1、請寫一程式,計算9+8+7+6+5+4之和。 2、請寫一程式,計算32+27+22+17+12+7之和。 請寫一程式,計算之和。 範例6-1c 示範break及continue敘述。 1. 當i==1時,執行goto jump1,所以程式直接跳躍到jump1:繼續執行,略過“hello”不印,如下所示。 2. 當i==5時,執行continue,所以5略過不印,直接跳躍至迴圈判斷式,開始執行i=6 ,如下所示。 3. 當i==8時,執行break,立即離開迴圈,如下所示。 【執行結果】 【程式列印】 範例6-1d 同範例5-4d,列出西元元年至西元2000年的所有閏年。 【執行結果】如下圖,共485個。(97*(2000%400)=485) 【程式列印】 【自我練習】 請寫一個程式

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档