成人免费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:52:22

學習編程教學

2017-03-15 15:43:08

編程書初學者資源

2017-03-15 16:17:20

學習命令計算機

2020-07-10 14:04:17

編程開發

2015-10-09 09:21:01

程序員寫書

2020-04-22 15:22:23

編程開源代碼

2022-06-06 10:55:51

本地服務鴻蒙

2013-07-04 09:42:47

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

2016-12-26 14:56:33

戴爾

2020-05-26 21:17:28

函數式編程純函數

2020-05-26 16:27:58

函數孩子編程

2017-01-16 11:09:44

Linux

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開源編程

2012-07-20 09:18:22

黑客

2018-01-19 15:31:36

戴爾

2013-07-08 15:16:25

2009-12-17 13:53:47

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精精国产xxxx视频在线播放7 | 成人在线观看欧美 | 国产在线一级片 | 亚洲精品日韩综合观看成人91 | 日韩在线观看精品 | 国产精品一区在线观看 | 免费一区二区三区在线视频 | 欧美a v在线 | jvid精品资源在线观看 | 日韩精品一区二区三区在线播放 | 亚洲高清一区二区三区 | 国产九九精品 | 成人自拍视频 | 亚洲精品电影网在线观看 | 日韩视频一区二区三区 | 噜噜噜噜狠狠狠7777视频 | 色综合久久久久 | 中国毛片免费 | 久久久噜噜噜久久中文字幕色伊伊 | 成人黄色在线 | 欧美日高清 | 欧美一级二级三级 | 欧美日韩一区在线 | 免费一级淫片aaa片毛片a级 | 日韩三区在线观看 | 久久国产精品视频 | 天天艹天天干天天 | 亚洲欧美中文日韩在线v日本 | 国产高清在线 | 亚洲男人天堂网 | 免费国产黄 | 免费在线观看一区二区三区 | 爱综合| 午夜a级理论片915影院 | 精品国产一区二区三区日日嗨 | 91精品国产综合久久久久久 | 免费一级黄色电影 | 日韩一区二区av | 日韩欧美亚洲 | 亚洲欧洲精品在线 | 男人av在线播放 |