




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第4章章 流程控制流程控制4-1循序結(jié)構(gòu) 4-2選擇結(jié)構(gòu) 4-3重複結(jié)構(gòu)4-4其他迴圈相關(guān)敘述 4-5本章綜合練習4-1循序結(jié)構(gòu) l循序結(jié)構(gòu)的程式,是以程式第一行敘述為進入點,依序由上往下執(zhí)行到程式的最後一行敘述。以下是流程示意圖:循序式結(jié)構(gòu)的流程示範:CH04_01l程式範例是很簡單的輸出輸入功能,不過是用來說明循序結(jié)構(gòu)由上往下的執(zhí)行順序。 選擇結(jié)構(gòu)l選擇結(jié)構(gòu)的條件敘述是讓程式能夠選擇應(yīng)該執(zhí)行的程式碼,就好比各位開車到十字路口,可根據(jù)不同的狀況來選擇需要的路徑。 lC中提供了五種相實用的條件控制敘述,分別為if、if-else、條件運算子、if else if 以及switch控制敘述等五
2、種。選擇結(jié)構(gòu)流程示意圖 if條件敘述 lif敘述式是最簡單的一種條件判斷式,可先行判斷條件敘述是否成立,再依照結(jié)果來決定所要執(zhí)行的程式敘述。l在C中,經(jīng)過比較運算子的運算,其中非0(零)的數(shù)都會被視為真(true),而將0視為假(false)。 if條件敘述的流程圖 if條件敘述的應(yīng)用與示範:CH04_02l程式範例是讓各位輸入停車時數(shù),以一小時50元收費,當大於一小時才開始收費,並列印出停車費用。if- else條件敘述 lif-else敘述提供了兩種不同的選擇,可以比單純只使用if條件敘述,節(jié)省更多判斷的時間。 lif-else敘述的作用是當if的判斷條件成立時,就執(zhí)行程式區(qū)塊內(nèi)的敘述,如
3、果不成立,就會執(zhí)行else後的敘述區(qū)塊。 if else 條件敘述的流程圖 if else條件敘述的應(yīng)用與示範:CH04_03l程式範例是利用if else條件敘述來判斷所輸入的國文成績是否及格,如果大於或等於60則列印本科成績及格.,否則列印本科成績不及格.。 條件運算子 l條件運算子(conditional operator)是C中唯一的一個三元運算子(ternary operator),它和if else條件敘述功能一樣,可以用來替代簡單的if else條件敘述,讓程式碼看起來更為簡潔。語法格式如下:l條件運算式?程式敘述一:程式敘述二 ;條件運算子的應(yīng)用與示範:CH04_04l程式範例
4、是利用條件運算子來判斷所輸入的數(shù)字為偶數(shù)與奇數(shù),並列印其判斷結(jié)果。 if else if條件敘述lif else if條件敘述是一種多選一的條件敘述,讓使用者在if敘述和else if中選擇符合條件運算式的程式敘述區(qū)塊,如果以上條件運算式都不符合,就執(zhí)行最後的else敘述,或者這也可看成是一種巢狀if else結(jié)構(gòu)。 l並非每個if都會有對應(yīng)的else,但是else一定對應(yīng)到最接近的一個if,如果對應(yīng)錯誤,往往會造成不同的結(jié)果,這也是日後各位除錯時容易犯的小bug。if else if 條件敘述的流程圖 if else if 條件敘述與閏年的判斷應(yīng)用與示範:CH04_05 l程式範例是利用if
5、 else if條件敘述來執(zhí)行潤年計算規(guī)則,以讓使用者輸入西元年來判斷是否為潤年。 switch條件敘述 l在進行多重選擇的時候,過多的else-if條件敘述經(jīng)常會造成程式維護上的困擾。 lC提供了switch條件敘述,讓程式更加簡潔清楚。 lswitch敘述必須依據(jù)同一個運算式的不同結(jié)果來選擇所要執(zhí)行的case敘述。 失敗經(jīng)過(falling through)現(xiàn)象 lswitch條件敘述,如果找到相同的結(jié)果值則執(zhí)行該case內(nèi)的程式敘述,當執(zhí)行完任何case區(qū)塊後,並不會直接離開switch區(qū)塊。l通常每道case敘述最後,必須加上break敘述來結(jié)束switch敘述,才可以避免失敗經(jīng)過的情
6、況。 lswitch(條件運算式)敘述中的括號絕不可省略,這也是除錯的熱門景點之一喔!switch 條件敘述的流程圖 switch條件敘述的應(yīng)用與示範:CH04_06 l程式範例是利用switch 條件敘述來輸入所要旅遊的地點,並分別顯示其價格。 l其中大小寫字母都代表同一地點,並利用break的特性,設(shè)定多重的case條件。重複結(jié)構(gòu)l重複結(jié)構(gòu)是一種迴圈控制,根據(jù)所設(shè)立的條件,重複執(zhí)行某一段程式敘述,直到條件判斷不成立,才會跳出迴圈。迴圈種類功能說明for敘述適用於計數(shù)式的條件控制,使用者已事先知道迴圈的次數(shù)。while敘述迴圈次數(shù)為未知,必須滿足特定條件,才能進入迴圈,同樣的,只有不滿足條件
7、測試後,迴圈才會結(jié)束。do-while敘述會先執(zhí)行一次迴圈內(nèi)的敘述,再進行條件測試。for迴圈敘述 l1.設(shè)定控制變數(shù)起始值。l2.如果條件運算式為真則執(zhí)行for迴圈內(nèi)的敘述。l3.執(zhí)行完成之後,增加或減少控制變數(shù)的值,可視使用者的需求來作控制,再重複步驟2。l4. 如果條件運算式為假,則跳離for迴圈。for迴圈敘述的流程圖 for迴圈敘述的應(yīng)用與示範:CH04_07l程式範例是利用for 迴圈來計算1加到10的累加值,是相當經(jīng)典的for迴圈教學範例。 巢狀for迴圈 l所謂巢狀for迴圈,就是多層式的for迴圈架構(gòu)。 l巢狀for迴圈結(jié)構(gòu)中,執(zhí)行流程必須先將內(nèi)層迴圈執(zhí)行完畢,才會繼續(xù)執(zhí)行外
8、層迴圈,容易犯錯的地方是迴圈間不可交錯。 九九乘法表的列印實作:CH04_08l程式範例是利用巢狀for 迴圈來設(shè)計的九九乘法表列印實作。 l其中兩個for迴圈的執(zhí)行次數(shù)都是9次,所以內(nèi)圈的printf(%d x %d=%dt, b, a, a*b);敘述共執(zhí)行了81次。而外圈的printf(n);只執(zhí)行9次。 while迴圈敘述 lwhile迴圈敘述與for迴圈敘述類似,都是屬於前測試型迴圈。 l運作方式則是在程式敘述區(qū)塊中的開頭必須先行檢查條件運算式,當運算式結(jié)果為true時,才會執(zhí)行區(qū)塊內(nèi)的程式。 lwhile迴圈還必須自行加入起始值與設(shè)定一個變數(shù)作為計數(shù)器,當每執(zhí)行一次迴圈,在程式區(qū)塊
9、敘述中計數(shù)器的值必須要改變,否則如果條件式永遠成立時,也將造成所謂無窮迴圈。while迴圈敘述的流程圖 while迴圈敘述來計算n!的值:CH04_09l程式範例是利用利用while迴圈讓使用者輸入n值,並分別計算1!到n!的值。 l程式中的i就是while迴圈中控制迴圈的計數(shù)器。一個整數(shù)的所有正因數(shù):CH04_10 l程式範例也是利用while迴圈來求出使用者所輸入整數(shù)的所有正因數(shù)。 lwhile迴圈中,藉由a=n的條件式以及a+;敘述來控制程式重複的次數(shù)。do while迴圈敘述 ldo-while迴圈敘述無論如何一定會先執(zhí)行迴圈內(nèi)的程式敘述,再測試條件式是否成立,如果成立的話再返回迴圈起
10、點重複執(zhí)行敘述。 ldo-while迴圈內(nèi)的程式敘述,無論如何至少會被執(zhí)行一次。do while迴圈敘述的流程圖 do while迴圈的應(yīng)用實作:CH04_11l程式範例是利用 do while迴圈敘述來由使用者輸入n值,當n小於10時才進行1到n的累加計算。 l過當n大於10時,do while敘述還是會執(zhí)行一次迴圈內(nèi)的敘述,這點可是和使用while迴圈敘述不同之處。 蝸牛爬樹問題:CH04_12 l這個程式範例也是利用do while迴圈敘述來解決蝸牛爬樹問題。 l假如有一隻蝸牛爬一棵10公尺的大樹,白天往上爬 2 公尺,但晚上會掉下 1 公尺,請問要幾天才可爬到樹頂? 其他迴圈相關(guān)敘述l
11、一個由C的基本流程控制寫出的應(yīng)用程式,有時候會出現(xiàn)一些特別的需求。 l要跳出程式敘述區(qū)塊或者返回迴圈起點時,就可以使用break或continue敘述,又或是想要將程式流程直接改變至任何位置執(zhí)行,也可以使用goto敘述來達成。break敘述lbreak敘述在之前多重選擇switch敘述中已經(jīng)使用過,相信各位應(yīng)該有點眼熟不過break並不只限於和switch搭配使用,任何一種迴圈類型,都能使用break敘述來強制跳出所在的迴圈敘述區(qū)塊。 lbreak敘述在巢狀迴圈中的內(nèi)層迴圈,一旦執(zhí)行break敘述時,break就會立刻跳出最近的一層迴圈區(qū)塊,並將控制權(quán)交給區(qū)塊外的下一行程式。 break敘述的
12、應(yīng)用與示範:CH04_13l程式範例是利用break敘述來控制九九乘法表的列印程式,由使用者輸入數(shù)字,並列印此數(shù)字之前的九九乘法表項目。 continue敘述lcontinue 敘述的功能是強迫 for、while、do while等迴圈敘述,結(jié)束正在迴圈本體區(qū)塊內(nèi)進行的程序,而將控制權(quán)轉(zhuǎn)移到迴圈開始處。 lcontinue 與 break 敘述的最大差別在於continue 只是忽略之後未執(zhí)行的敘述,但並未跳離迴圈。語法格式如下: lcontinue;continue敘述的應(yīng)用與示範:CH04_14 l程式範例是利用continue敘述來控制九九乘法表的列印程式,由使用者輸入數(shù)字,並列印所指
13、定數(shù)字之外的所有九九乘法表項目。 簡單密碼驗證程式:CH04_15l程式範例是同時結(jié)合break以及continue敘述特性來設(shè)計一程式讓使用者輸入密碼後,進行簡單密碼驗證工作,不過輸入次數(shù)以三次為限喔! goto敘述lgoto 敘述是一種允許強制跳脫的流程控制敘述,只要在goto 敘述所要前往的程式敘述所在設(shè)立標記,就可以直接從goto所在位置跳到標記處。 lgoto敘述必須搭配設(shè)定的標籤來使用,而標籤名稱則是一個識別字加上冒號(:)所組成。 l程式執(zhí)行到goto敘述時,便會跳躍至標籤名稱所在敘述,而繼續(xù)往下執(zhí)行。 goto敘述的應(yīng)用與示範:CH04_16 l程式範例用來說明goto敘述的使
14、用方式,其中分別設(shè)定了三個標籤,透過if敘述判斷,只要程式執(zhí)行到所搭配的goto敘述,則會跳至該標籤敘述,繼續(xù)往下執(zhí)行。kbhit()函數(shù)應(yīng)用lkbhit()函數(shù)含括在標頭檔內(nèi),主要功用是在不會中斷程式來等待使用者輸入的情況下,會去檢查緩衝區(qū)是否有資料。 l適合在某些需要程式持續(xù)執(zhí)行,直到使用者碰觸任一按鍵,才產(chǎn)生其它執(zhí)行請求的狀況,例如螢幕保護程式。 體重計算程式實作:CH04_17.clwhile迴圈重複在畫面顯示字串輸入任一鍵結(jié)束程式,直到使用者碰觸任一鍵後才會結(jié)束執(zhí)行。求取最大值程式:CH04_18.c l設(shè)計一程式,讓使用者輸入任意數(shù)目之數(shù)字,並利用for迴圈來輸入與尋找這些數(shù)字中的最大值。近似值的求解程式:CH04_19.c l設(shè)計一程式可輸入k值,求的近似值:l ,其中k的值越大,的近似l l 值越精確。knnn012) 1(4n!的計算程式:CH04_20.cl利用 while迴圈讓使用者輸入n值,並計算n!的值。 商品金額與折扣計算 l榮欽百貨公司準備促銷三種商品,再依照顧客消費金額進行折扣優(yōu)惠。促銷的商品資料如下:l根據(jù)上表,可計算出顧客的總消費金額。至於折扣如下表所示:商品代碼商品
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學校機構(gòu)設(shè)置及工作職責(2025年修訂)
- 家長會防疫安全知識培訓課件
- 食品生鮮經(jīng)營方案(3篇)
- 住房樓層批建方案(3篇)
- 防范林業(yè)風險措施方案(3篇)
- 礦井陽臺防水補漏方案(3篇)
- 石臼垃圾清運方案(3篇)
- 一建經(jīng)濟基礎(chǔ)課件
- 車間水簾設(shè)計方案(3篇)
- 旅行購物花銷預算方案(3篇)
- 防造假培訓課件視頻教程
- 中郵保險筆試題型及答案
- 臍灸技術(shù)操作流程圖及考核標準
- 2025至2031年中國緩沖體總成行業(yè)投資前景及策略咨詢研究報告
- 箱泵一體化泵站設(shè)計圖集
- 可研報告收費標準(國家標準)
- 智慧華中大統(tǒng)一身份認證系統(tǒng)建設(shè)方案
- 建筑工程安全管理提升方案
- 肩關(guān)節(jié)脫位-課件
- 對新員工保密基本培訓
- 2025屆湖北省部分學校新高三新起點暑期效果聯(lián)合質(zhì)量檢測數(shù)學試卷(解析版)
評論
0/150
提交評論