目標
- 瞭解函式是什麼
- 掌握如何定義一個函式
函式是什麼
本章我們學習一個新的概念————函式。
你可以簡單的將函式看作為一個黑匣子,給它輸入引數後,它將會按照一定的規則,執行相應的指令或輸出資料。
讓我們用生活中的一個小物件來理解什麼是函式。
假設你家有一臺榨汁機,通過它,就能榨出鮮美可口的果汁。而具體榨出來的是什麼果汁呢?那就要看你放進榨汁機的是什麼水果啦。
而對於函式,你完全可以將它想象成是一臺榨汁機。你只需要給定不同的輸入引數(不同的水果),它就會有不同的輸出(不同的果汁)。
如何定義一個函式
下圖為本章中被經常使用的goto函式的定義。
以上的三行程式碼定義了一個名為goto的函式,其中輸入引數為a。
接下來的兩行則是此函式的函式體。
根據上面的例子,我們可以得到如下的定義一個函式的通用格式。
如何呼叫一個函式
所謂呼叫函式,其實就是指使用函式。
對於上面定義的goto函式,我們可以這樣呼叫它。
上面小括號中的bridgh和match是輸入引數。
由此,我們可以得到呼叫函式的格式為:
函式呼叫時發生了什麼
通過下面這個例子,我們來看一下,在函式呼叫時,到底發生了什麼?
當執行goto(bridge)這一行語句時,首先會將bridge賦值給a,即令a=bridge。注意,這是一個關鍵點。由於這個賦值過程並沒有顯式的表現出來,如果不知道這個賦值,可能會對函式的理解造成一些困難。
那麼,在接下來的函式體內,我們可以認為所有的a都被先後替換成了bridge和match。
所以,goto(bridge)和goto(match)實際上等同於以下的程式碼:
為什麼要引入函式的概念
好了,以上就是關於函式的所有內容了。
在學習了函式的概念以及用法之後,我們最後再來思考一個問題:為什麼要使用函式,使用函式有什麼好處?
其實不難看出,人們是為了偷懶才引入函式的,哈哈。因為使用函式,我們可以少寫很多重複的程式碼,減少工作量。
作業
- 故事模式76 - 90關
- 進階模式7-1 - 7-15關
注意,一定保證要所有關卡都拿到三顆星。
小結
- 函式封裝了一段程式碼,呼叫函式即可執行這段程式碼。
- 輸入不同的引數,函式即可執行不同的動作。
問答
- CodeMonkey學到現在,感覺越來越難,不想學了怎麼辦?
難者不會,會者不難。如果你感覺到越學越困難,那就說明之前的知識點,你掌握得還不夠好。所以,請回過頭去複習一下之前的內容,切勿一心想著通關。
堅持就是勝利。