成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為孩子寫一本編程書系列:學習函數 將命令打包

開發 開發工具
雖然只是在Playground中將moveFoward()、collectGem()、toggleSwitch()這些簡單的命令進行組合并執行,但看得出,在每一次完成一項編程挑戰游戲的過程中,孩子的編程思維也正被逐漸地構建起來。而在這一節里,我們將介紹編程學習中另一個重要工具——函數。

在上一節中,小Ian已經熟悉了使用命令來解決一些簡單的編程挑戰。雖然只是在Playground中將moveFoward()、collectGem()、toggleSwitch()這些簡單的命令進行組合并執行,但看得出,在每一次完成一項編程挑戰游戲的過程中,孩子的編程思維也正被逐漸地構建起來。而在這一節里,我們將介紹編程學習中另一個重要工具——函數。

認識函數

在我們的日常生活中,即使是一個最簡單的任務,也是由由一系列步驟,按照一定的順序組合而成的。比如,我們每天都會做的系鞋帶這個動作,也可以將它分成三個步驟來完成。

每雙鞋都有兩只,因此同樣的過程,我們需要重復執行兩遍。想象一下,如果我們用上一節學過的命令方式,去讓計算機完成系鞋帶這個任務的話,是不是應該需要輸入下面這6條命令呢?

但想一想,當我們穿鞋時,其實并不是按照這些指令來完成穿鞋這個任務的。在我們的腦子里只是記住了系鞋帶的步驟,然后每次需要穿鞋系鞋帶時,就將這些步驟從腦袋里拿出來,應用到穿每一只鞋子上。那么,同樣的,有沒有一種方法能夠讓計算機記住這些步驟,并在需要的時候去使用它呢?這里,我們就需要用到一個新的工具——函數。

函數能夠將一組命令打包,并給它賦予一個名稱。而這一組命令便可以在需要時通過這個函數的名字進行調用。

定義函數

讓我們仍以系鞋帶為例,看看如何通過定義函解的方式,讓計算機記住系鞋帶的步驟:

  • 首先我們通過 func 關鍵字來聲明一個函數
  • func后面跟著的便是我們給函數起的名字,上面這個函數的名字叫做tieMyShoe——系我的鞋帶,和之前提到的命令一樣,我們也在函數的名稱后面加上一對括號。
  • 我們使用一對 花括號{} 來定義函數所包含的內容,我們也稱它為 函數體。通過將命令添加到函數體中,便能給這個函數添加我們所希望的行為。

調用函數

我們定義函數之后,計算機并不會自動地去執行它。而是需要我們明確地告訴計算機在何時何地去調用它。我們通過函數名來調用并執行它所打包的那一組命令。這里,我們便通過調用兩次tieMyShoe()函數,完成給兩只鞋系鞋帶的任務。

[[185529]]

Tips:理解函數的定義和調用之間的關系非常重要,函數用來打包命令,但在定義后并不會被直接執行,只有在通過函數的名字調用它們時,函數體內的命令才會被執行。

通過函數簡化問題解決

函數是程序員們編程時最常使用的工具,但對于初學者來說,他們卻往往難以判斷什么時候應該使用函數,因為,大部分情況下我們同樣能通過組合命令來解決問題。下面是那些最常見的函數使用場景,而其中第二點又是這些場景中最常見的:

  • 當需要通過組合已有的命令,來創造出新的或更復雜的行為時
  • 當某一行為可能被重復或多次使用時
  • 當某一行為變得太過復雜時,也會將它分解成多個更小的行為

下面還是讓我們回到Ian最喜歡的Playground中,去看看我們如何通過函數去解決那些復雜問題。在這個挑戰游戲中,我們需要幫助Byte抓到全部4顆寶石,并打開4個開關。

[[185530]]

Ian一眼就看出了這個迷宮的規律,4個寶石和4個開關,平均分布在迷宮的4條邊上。每一條邊上的寶石和開關都在相同的位置上。因此,我們只要定義一個函數去解決一條邊上的寶石和開關,然后重復調用四次便可以完成這個編程挑戰了。讓我們為這個函數起個名字,就叫它resolveRow()吧。

瞧,我們剛剛成功完成了這個編程挑戰,比起我們光用命令去實現所需要的27條命令,使用函數的方式是不是簡明了很多呢?上面的這個編程挑戰,并不是Playground中函數這一小節的***個編程挑戰,但我們在這個挑戰游戲中所運用的方法,卻像極了那些程序員們在日常工作中,解決問題時所普遍采用的思路:

  1. 首先明確任務的目標:抓到所有寶石、打開所有開關
  2. 分析問題,盡可能地通過識別模式,將較大的問題分解為一個個小問題:這里的小問題就是解決一條邊上的寶石與開關。
  3. 為每一個獨立的小問題找到解決方法:通過定義函數resolveRow()來處理一條邊上的寶石與開關。
  4. 通過將這些小問題的解決組合起來,解決整個任務所包含的大問題:通過調用4次resolveRow()函數,完成挑戰。

Tips:這種解決問題的思路和方法,不僅在編程中普遍應用,也同樣適用于幾乎所有學科和領域。孩子們在學習編程的過程中,實際也是在學習問題識別、分解和解決的方法,這對他們盡早培養起獨立解決問題的能力非常有幫助

小節

通過這一節的學習,我們認識了編程中的函數,通過定義函數,我們用一個名字來指代一組命令所包含的行為。并在需要時,通過對這個函數名的調用,告訴計算機去執行這一組命令。另外,我們還學習了如何將大問題進行分解,并通過定義和調用函數來解決問題的方法,這一方法將始終貫穿于我們日后的編程實踐當中。在下一節,我們將會學習編程中的一個重要控制邏輯For循環。

練習

請大家完成Playground中,Funcations這一節中的其他編程挑戰,它們包括:定義一個新的函數;在函數中添加命令以創建新的行為;函數間的嵌套調用;通過函數解決復雜問題等等。完成這些練習后,你將會對函數的使用有更深入的理解,這也將是你未來構建更強大應用的基礎。

【本文是51CTO專欄作者“陳逸鶴”的原創文章,如需轉載請聯系作者本人(微信公眾號:techmask】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2017-03-15 15:43:08

編程書初學者資源

2017-03-15 15:52:22

學習編程教學

2017-03-15 16:17:20

學習命令計算機

2020-07-10 14:04:17

編程開發

2015-10-09 09:21:01

程序員寫書

2020-04-22 15:22:23

編程開源代碼

2013-07-04 09:42:47

測試軟件測試如何測試軟件

2022-06-06 10:55:51

本地服務鴻蒙

2020-05-26 21:17:28

函數式編程純函數

2020-05-26 16:27:58

函數孩子編程

2017-01-16 11:09:44

Linux

2016-12-26 14:56:33

戴爾

2016-06-01 16:03:39

emoji圣經

2010-09-01 08:58:20

讓喬布

2018-08-03 19:49:00

編程

2018-06-28 11:35:04

Linux開源編程

2018-01-19 15:31:36

戴爾

2012-07-20 09:18:22

黑客

2013-07-08 15:16:25

2009-12-17 13:53:47

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品综合色区在线观看 | 国产永久免费 | 亚洲 欧美 日韩 精品 | 欧美在线视频一区二区 | 中文字幕av第一页 | 成人三区 | 欧美日韩在线观看一区 | 天天操天天拍 | 亚洲人成在线播放 | 亚洲欧美日韩精品久久亚洲区 | 国产精品久久久久久久一区二区 | 国产精品区二区三区日本 | 高清一区二区三区 | 成人做爰9片免费看网站 | 中文字幕一级毛片视频 | 久久伊人在 | 国产一区二区在线播放视频 | 一区二区免费在线观看 | 毛片久久久 | 欧美在线一区视频 | 成人免费毛片片v | 国产一区二区三区欧美 | 韩国毛片视频 | 一级片在线视频 | 亚洲综合日韩精品欧美综合区 | 欧美成人激情视频 | 久久午夜精品 | 午夜精品一区二区三区在线观看 | 在线亚洲免费 | av在线视| 国产精品久久久久久久久久免费 | 成人欧美一区二区三区黑人孕妇 | 九色国产 | 亚州一区二区三区 | 亚洲综合区 | 国产美女黄色片 | 精品国产成人 | 国产亚洲一区二区三区在线观看 | 亚洲成人在线免费 | 国产精品久久久久久久久久久新郎 | 午夜精品导航 |