函數傳回值 (影視版)
-
0:01 - 0:06我們又回到用函數
來畫4個溫斯頓的程式了 -
0:06 - 0:07我修改了一下
-
0:07 - 0:09以便顯示溫斯頓不同人生階段的年紀
-
0:09 - 0:11你等一下就會明白
-
0:11 - 0:14我要告訴你一件關於溫斯頓的事:
-
0:14 - 0:16溫斯頓愛死甜甜圈了
-
0:16 - 0:18他每天吃3個
-
0:18 - 0:22難怪一張臉又大又黃
-
0:22 - 0:25為了提醒他
甜甜圈對身體不好 -
0:25 - 0:27我想修改一下程式
-
0:27 - 0:32以便顯示於每個年紀
他累計吃下多少甜甜圈 -
0:32 - 0:36例如,他2歲時
-
0:36 - 0:42他共吃了3﹡365﹡2
-
0:42 - 0:461天3個,1年365天,2年
-
0:46 - 0:50讓數量顯示在標頭下
-
0:50 - 0:52哇!2千個甜甜圈
-
0:52 - 0:54對2歲娃來說太多了
-
0:54 - 0:57現在他14歲
-
0:57 - 1:04他吃了 3﹡365﹡14
-
1:04 - 1:08共吃了1萬5千個甜甜圈
-
1:08 - 1:13我一直這樣算也行
但我開始發現一個規律 -
1:13 - 1:17我正在重複我的運算
-
1:17 - 1:20而我只改變其中的一樣東西:年數
-
1:20 - 1:23每當我看到像這樣重複的程式碼
-
1:23 - 1:28我便想:「嗯,這能否寫成函數?」
-
1:28 - 1:30對,我們絕對可以的
-
1:30 - 1:33我們動手吧
-
1:33 - 1:34我在這裡定義函數
-
1:34 - 1:41叫它做 calcTotalDonuts = function
-
1:41 - 1:44裡面只有一個參數,年數
-
1:44 - 1:49因為那是我們每次做這計算時
唯一變動的東西 -
1:49 - 1:53程式裡面,我們做計算
-
1:53 - 2:01將它存為變數
也就是 3﹡365﹡numYears -
2:01 - 2:03我們現在有了這函數
-
2:03 - 2:09我將利用 calcTotalDonuts
去取代在這裏的表示式 -
2:09 - 2:13以便召喚程式,及傳遞數值 2
-
2:13 - 2:17好,現在我們看不到任何總數
-
2:17 - 2:19嗯,怎麼了呢?
-
2:19 - 2:22我們的函式確實計算了總數
-
2:22 - 2:23在這
-
2:23 - 2:26但它沒有告知任何人那總數
-
2:26 - 2:30好比學校老師點你回答問題
-
2:30 - 2:32而你只在腦中回答
-
2:32 - 2:34因爲你太害羞去講出答案
-
2:34 - 2:37你有答案,但老師永遠不會知道
-
2:37 - 2:41如果我們想函數
傳某值給召喚它的人 -
2:41 - 2:46函數就要寫明去回傳 (return) 那值
-
2:46 - 2:50要函數回傳一個值
我們須輸入 return -
2:50 - 2:51不管它想回傳什麼
-
2:51 - 2:55可以是變數、數值或表示式
-
2:55 - 2:58這裡我們指明
return totalDonuts -
2:58 - 3:02所以誰召喚此函數
誰就會得到這回答 -
3:02 - 3:05總計顯示出來了, 耶!
-
3:05 - 3:07這裡我們可簡化函數
-
3:07 - 3:08不必儲存成變數
-
3:08 - 3:10只需把整個表示式
-
3:10 - 3:14寫在 return 裡
函數就變成一行 -
3:14 - 3:14好
-
3:15 - 3:18現在我們可以來回顧和計算
-
3:18 - 3:20每個年紀吃下的甜甜圈總量
-
3:20 - 3:24就是召喚這函數
傳遞年數 -
3:24 - 3:29嗯,這裡是 calcTotalDonuts(25)
-
3:29 - 3:36位置沒錯 calcTotalDonuts(65)
-
3:36 - 3:40好!哇!如果他吃到65歲
-
3:40 - 3:45他將吃下7萬個甜甜圈
那真是超多甜甜圈 -
3:45 - 3:48我不覺得溫斯頓能辦到(笑)
-
3:48 - 3:50不過現在我們寫了這函數
-
3:50 - 3:53做些小調整並不難
-
3:53 - 3:55好比溫斯頓看到這結果
-
3:55 - 3:59說: 「噢!這太多了
如果我1天只吃1個?」 -
3:59 - 4:03那我們可以來到這
修改這一個數字 -
4:03 - 4:04所有都改好了
-
4:04 - 4:072萬3千個,還是很多
-
4:07 - 4:10也許溫斯頓說:
「好吧好吧!如果我1週吃1個呢?」 -
4:10 - 4:12嗯,這比較合理
-
4:12 - 4:15那我們改 365 為 50
-
4:15 - 4:18因為一年有50週,對吧?
-
4:18 - 4:23好,看來好多了,是吧?
3千個,那蠻合理的 -
4:23 - 4:27所以你看,運用函數和數值回傳
-
4:27 - 4:31我們能保存程式碼,亦能保護生命
Inez Ng edited Chinese, Traditional subtitles for Function Return Values (Video Version) | ||
Inez Ng edited Chinese, Traditional subtitles for Function Return Values (Video Version) | ||
Inez Ng edited Chinese, Traditional subtitles for Function Return Values (Video Version) | ||
Inez Ng edited Chinese, Traditional subtitles for Function Return Values (Video Version) | ||
Inez Ng edited Chinese, Traditional subtitles for Function Return Values (Video Version) | ||
Inez Ng edited Chinese, Traditional subtitles for Function Return Values (Video Version) | ||
Inez Ng edited Chinese, Traditional subtitles for Function Return Values (Video Version) | ||
Inez Ng edited Chinese, Traditional subtitles for Function Return Values (Video Version) |