- 1、本文档共130页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 6 章 函式 本章提要 6-1 認識函式 6-2 傳遞參數 6-3 函式傳回值 6-4 行內函式 6-5 巨集 6-6 C++ 標準函式庫 6-7 函式多載 (Overloading) 6-8 綜合演練 6-1 認識函式 隨著程式越寫越大, main() 函式的內容也越來越複雜, 當我們在寫較長的程式時, 可能會發現程式中有許多段功能相同的敘述會重複出現, 而且由於程式的需求, 這些程式碼無法被省略, 只好重複一寫再寫。本章所要介紹的函式, 讓我們能以更簡便的方式, 取代會重複用到的一段程式碼, 提昇寫作程式的效率, 也讓程式的功能模組化。 使用函式的好處 所謂函式 (function) 就是一組敘述的集合, 並且以一個函式名稱來代表此敘述集合。如果這一組敘述代表一項經常用到的功能, 我們每次要用到這組敘述時, 只要寫下函式的名稱, 就是告訴編譯器我們要執行這項功能。 舉例來說, 如果程式前前後後要計算階乘多次, 且不是連續計算, 因此不適合用迴圈, 這時就變成要讓計算階乘的敘述在 main() 函式中出現多次: 使用函式的好處 使用函式的好處 但如果我們將計算階乘的敘述獨立出來寫成一個函式, 以後程式中計算階乘時, 只要呼叫這個函式來進行計算即可, 不必每次都要重寫計算階乘的一整段迴圈敘述:(如下頁) 如此一來, 計算階乘的動作在 main() 函式中只需以一行簡單的敘述代替即可, 大幅省下撰寫重複程式的時間。如果函式的內容愈複雜, 也代表節省下來的時間更多。 使用函式的好處 使用函式的好處 簡單的說, 使用函式的好處包括: 將具有特定功能的敘述獨立成函式, 可提高程式的可讀性。 將程式模組化, 讓程式碼可重複使用, 提升寫程式的效率。 將程式分解成函式, 發生錯誤時, 可以很容易找出問題在哪一個函式, 提高除錯的效率。 函式的定義 函式和變數一樣, 在使用前必須先定義。定義函式就是定義函式的資料型別、呼叫 (call) 函式 (程式中使用函式的動作就稱為呼叫函式) 時所需的參數、以及函式所要執行的動作 (敘述): 函式的定義 型別:函式和變數一樣都有型別, 不過函式的型別並不是函式儲存的資料類型, 而是函式傳回值的資料類型。函式處理完工作後, 可以將處理的結果以傳回值的方式傳回給呼叫它的敘述, 讓程式可據以做進一步的處理。要將資料傳回, 需使用 return 敘述, 例如 “return 0;” 表示傳回 0, 若在 return 敘述後放變數或運算式, 就表示傳回變數值或運算式的結果。函式也可以沒有傳回值, 此時需將函式的型別宣告為 void。 函式名稱:函式的命名規則和變數相同, 且不可與變數名稱重複。 函式的定義 參數:參數就像數學公式中的變數一樣, 同一個公式以不同變數值代入計算, 即可得到不同的結果。參數就是函式的變數, 每次以不同的參數值呼叫函式, 即可得到不同的結果。當然我們也可設計沒有參數的函式。此處所列的參數名稱, 是在函式中用來代表參數的變數名稱, 呼叫函式時, 可使用變數、運算式、常數來呼叫。 函式本體:大括號的部份就稱為函式本體 (function body), 在大括號中可放入任何要執行的敘述。 函式本體 在函式本體中我們可放入希望該函式執行的任何動作, 在此先舉個簡單的例子:若程式每處理一段事情, 就要用嗶聲提醒使用者, 我們可將發出嗶聲的動作獨立成一個函式: 函式本體 1. 這個函式只是單純發出嗶聲, 所以不需有傳回值, 因此函式的型別為 void。 2. 函式沒有任何參數, 在函式名稱後的括號保持空白。 3. 函式本體只有一行敘述, 就是由 cout 輸出工作完成的訊息, 並以字元 \a 使電腦發出嗶聲。 將這個函式加到程式中, 我們就可在 main() 函式中每處理某件工作告一段落時, 呼叫 beep() 函式使電腦發出嗶聲, 呼叫的方式就是函式名稱();, 請見以下的範例。 函式本體 函式本體 函式本體 1. 第 4~7 行就是先定義自訂函式的內容, 以免稍後在 main() 函式中呼叫函式的敘述, 會讓編譯器發出找不到識別字的錯誤訊息。 2. 第13、17 行的 for 迴圈都緊跟著一個沒有任何運算式的空敘述 (也就是只有一個分號的敘述), 但 for 迴圈本身的條件運算式及控制運算式仍要執行, 所以這兩個迴圈等於讓電腦做了數千萬次的加法運算 (i++) 及比較運算 (i...), 我們用此方式來模擬程式正在執行某項工作。 函式本體 3. 第 15、19 行的敘述就是呼叫 beep() 函式。此時執行流程會先跳進 beep() 函式中, 待 beep() 函式的工作執行完畢, 才返回 main() 函式中的下一行敘述繼續執行。 函式本體 函式本體 程式每次執行完指定的工作後,
您可能关注的文档
- 公开课52新时代的劳动者.ppt
- 公文写作技巧培训讲座.ppt
- 公司财务研究专题.ppt
- 公文综合讲义3皇甫志辉.ppt
- 公文管理讲座.ppt
- 六号院楼盘售楼中心欢乐迎春节活动的方案.ppt
- 公馆生活艺术盛典暨绿地外滩公馆营销中心开放仪式活动的的策划案.ppt
- 六安鸿盛金天地项目初步交流报告.ppt
- 关于大学生电脑使用的调查.ppt
- 关注口腔健康提高生命质量.ppt
- 某某单位2024年党建工作总结及2025年工作计划.doc
- 某某市发改委关于2024年度落实党风廉政建设工作责任制情况的报告.doc
- 某某局2024年全面从严治党和党风廉政建设工作总结.doc
- 某某区财政局2024年法治政府建设总结及2025年工作谋划.doc
- 2024年党管武装工作述职报告2篇.doc
- 2024年度国企党委书记抓基层党建工作述职报告3篇.doc
- 公司党委书记2024年述职述廉报告.docx
- 2024年度乡镇党委领导班子民主生活会(四个带头)对照检查材料.doc
- 市医疗保障局关于2024年法治政府建设工作情况的报告.docx
- 市民政局党组2024年巡察整改工作情况报告.docx
文档评论(0)