第7章 函式

目標

瞭解函式是什麼

掌握如何定義及使用函式

函式是什麼

本章我們學習一個新的概念——函式。

你可以簡單的將函式想象成一個黑匣子,給它輸入引數後,它將會按照一定的規則,執行相應的指令或輸出資料。

讓我們用生活中的一個小物件來理解什麼是函式。

假設你家有一臺榨汁機,透過它,就能榨出鮮美可口的果汁。而具體榨出來的是什麼果汁呢?那就要看你放進榨汁機的是什麼水果啦。

而對於函式,你完全可以將它想象成是一臺榨汁機。你只需要給定不同的輸入引數(不同的水果),它就會有不同的輸出(不同的果汁)。

如何定義一個函式

下圖為本章中被經常使用的goto函式的定義。

第7章 函式

上圖中的三行程式碼定義了一個名為goto的函式,其中

輸入引數

為a。

接下來的兩行則是此函式的

函式體

根據上面的例子,我們可以得到如下的定義一個函式的通用格式。

第7章 函式

如何呼叫一個函式

所謂呼叫函式,其實就是指使用函式。

對於上面定義的goto函式,我們可以這樣呼叫它。

第7章 函式

上面小括號中的bridgh和match是輸入引數。

由此,我們可以得到呼叫函式的格式為:

第7章 函式

函式呼叫時發生了什麼

透過下面這個例子,我們來看一下,在函式呼叫時,到底發生了什麼?

第7章 函式

當執行goto(bridge)這一行語句時,首先會

將bridge賦值給a,即令a=bridge

注意,這是一個關鍵點。由於這個賦值過程並沒有顯式的表現出來,如果不知道這個賦值過程,可能會對函式的理解造成一些困難。

那麼,在接下來的函式體內,我們可以認為所有的a都被先後替換成了bridge和match。所以,goto(bridge)和goto(match)實際上等同於以下的程式碼:

第7章 函式

為什麼要引入函式的概念

好了,以上就是關於函式的所有內容了。

在學習了函式的概念以及用法之後,我們最後再來思考一個問題:為什麼要使用函式,使用函式有什麼好處?

其實不難看出,人們是為了偷懶才引入函式的,哈哈。因為使用函式,我們可以少寫很多重複的程式碼,減少工作量。

作業

故事模式 76 - 90 關

進階模式 7-1 - 7-15 關

注意,一定保證要所有關卡都拿到三顆星。

小結

呼叫函式時,輸入引數有一個賦值的過程。

函式封裝了一段程式碼,呼叫函式即可執行這段程式碼。

輸入不同的引數,函式即可執行不同的動作。

問答

CodeMonkey學到現在,感覺越來越難,不想學了怎麼辦?

難者不會,會者不難。如果你感覺到越學越困難,那就說明之前的知識點,你掌握得還不夠好。所以,請回過頭去複習一下之前的內容,切勿一心想著通關。堅持就是勝利,加油!