[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.98,0:00:03.73,Default,,0000,0000,0000,,让我们回到我们的程序,\N此程序利用函数功能 Dialogue: 0,0:00:03.73,0:00:05.58,Default,,0000,0000,0000,,描画了四个Winston(大黄娃娃头)。 Dialogue: 0,0:00:05.58,0:00:08.16,Default,,0000,0000,0000,,我已经改变了他 Dialogue: 0,0:00:08.16,0:00:10.59,Default,,0000,0000,0000,,在每一年龄阶段实际年龄的显示。\N你很快会明白为什么。 Dialogue: 0,0:00:11.38,0:00:13.55,Default,,0000,0000,0000,,但首先我需要让你们知道关于\NWinston 的某些事情。 Dialogue: 0,0:00:13.55,0:00:15.90,Default,,0000,0000,0000,,Winston 特别喜欢炸甜面圈, Dialogue: 0,0:00:15.90,0:00:18.44,Default,,0000,0000,0000,,他一天吃三个。 Dialogue: 0,0:00:18.44,0:00:21.33,Default,,0000,0000,0000,,那就是他的脸又大又黄的原因。 Dialogue: 0,0:00:21.70,0:00:25.31,Default,,0000,0000,0000,,所以为了警告Winston有关\N炸甜面圈对他有多么不好, Dialogue: 0,0:00:25.31,0:00:31.09,Default,,0000,0000,0000,,我想修改一下这个程序\N显示他在每个年龄段吃了 Dialogue: 0,0:00:31.09,0:00:32.68,Default,,0000,0000,0000,,多少个炸甜面圈。 Dialogue: 0,0:00:32.68,0:00:35.78,Default,,0000,0000,0000,,比如,当他两岁的时候, Dialogue: 0,0:00:35.87,0:00:41.60,Default,,0000,0000,0000,,那意味着他吃了3x365x2, Dialogue: 0,0:00:41.60,0:00:45.87,Default,,0000,0000,0000,,所以是一天三个,乘以365天,\N再乘以2年, Dialogue: 0,0:00:45.87,0:00:50.33,Default,,0000,0000,0000,,我们会在那个头下面显示那个结果。\N哇,这么多! Dialogue: 0,0:00:50.33,0:00:53.94,Default,,0000,0000,0000,,两千个炸甜面圈,对一个两岁的\N孩子来说真的很多。 Dialogue: 0,0:00:53.94,0:01:02.45,Default,,0000,0000,0000,,现在他是十四岁,让我们看看,\N应该是3乘以365 再乘以14, Dialogue: 0,0:01:04.03,0:01:08.45,Default,,0000,0000,0000,,那就是15,000个。好了。 Dialogue: 0,0:01:08.45,0:01:12.62,Default,,0000,0000,0000,,我可以一直用这个算式,\N但我开始注意到一个模式。 Dialogue: 0,0:01:13.15,0:01:16.72,Default,,0000,0000,0000,,我在重复我的计算。 Dialogue: 0,0:01:16.72,0:01:20.42,Default,,0000,0000,0000,,虽然我只是改变一个数字:\N年数。 Dialogue: 0,0:01:20.42,0:01:22.87,Default,,0000,0000,0000,,无论何时当我看到这样的重复编码, Dialogue: 0,0:01:22.87,0:01:28.35,Default,,0000,0000,0000,,我会想,“嗯,我能把这变成一项函数吗?“ Dialogue: 0,0:01:28.35,0:01:31.84,Default,,0000,0000,0000,,是的,绝对可以。\N那么现在让我们来试试看。 Dialogue: 0,0:01:32.80,0:01:34.42,Default,,0000,0000,0000,,我会在这儿定义我的函数 Dialogue: 0,0:01:34.42,0:01:40.38,Default,,0000,0000,0000,,或者把它叫做calTotalDonuts=function Dialogue: 0,0:01:40.92,0:01:44.23,Default,,0000,0000,0000,,它需要一个参数,年龄的数目, Dialogue: 0,0:01:44.23,0:01:46.02,Default,,0000,0000,0000,,因为那是我们每次 Dialogue: 0,0:01:46.02,0:01:48.57,Default,,0000,0000,0000,,做计算时唯一有变化的数字。 Dialogue: 0,0:01:49.32,0:01:52.88,Default,,0000,0000,0000,,我们将在这里面做计算, Dialogue: 0,0:01:52.88,0:01:59.60,Default,,0000,0000,0000,,并将其存作一个变量,\N所以是3乘以365 乘以numYears. Dialogue: 0,0:02:00.68,0:02:03.10,Default,,0000,0000,0000,,可以啦,现在我们就有了这个函数功能。 Dialogue: 0,0:02:03.10,0:02:08.60,Default,,0000,0000,0000,,我会用calcTotalDonuts来替代这个表达式 Dialogue: 0,0:02:08.60,0:02:11.57,Default,,0000,0000,0000,,使用函数功能,并且输入“2” Dialogue: 0,0:02:12.74,0:02:16.88,Default,,0000,0000,0000,,好了,我们并没有看见总数 Dialogue: 0,0:02:17.23,0:02:19.09,Default,,0000,0000,0000,,那么,怎么回事儿? Dialogue: 0,0:02:19.09,0:02:22.62,Default,,0000,0000,0000,,哦,我们的函数功能在这儿计算了总数 Dialogue: 0,0:02:23.10,0:02:25.64,Default,,0000,0000,0000,,但没有告诉任何人那个总数。 Dialogue: 0,0:02:26.05,0:02:30.37,Default,,0000,0000,0000,,就像老师在课堂上叫你起来回答问题 Dialogue: 0,0:02:30.37,0:02:31.74,Default,,0000,0000,0000,,你的答案在你的脑子里, Dialogue: 0,0:02:31.74,0:02:33.65,Default,,0000,0000,0000,,但你羞于把它说出来。 Dialogue: 0,0:02:33.65,0:02:36.100,Default,,0000,0000,0000,,你已经完成了工作,但你的老师\N却不知道, Dialogue: 0,0:02:37.35,0:02:39.68,Default,,0000,0000,0000,,如果我们想让函数把值告诉给 Dialogue: 0,0:02:39.68,0:02:45.17,Default,,0000,0000,0000,,调用它的人,\N那这个函数必须明确地回返一个值。 Dialogue: 0,0:02:45.71,0:02:49.32,Default,,0000,0000,0000,,所以,为了函数能回返一个值,\N我们必须写下“return” Dialogue: 0,0:02:49.60,0:02:51.57,Default,,0000,0000,0000,,然后就有了它所要的回值。 Dialogue: 0,0:02:51.57,0:02:55.14,Default,,0000,0000,0000,,也许它是一个变量或者\N是一个值或一个表达式, Dialogue: 0,0:02:55.14,0:02:57.75,Default,,0000,0000,0000,,那么在这儿我们就敲上\Nreturn totalDonuts,行吗? Dialogue: 0,0:02:57.75,0:03:01.54,Default,,0000,0000,0000,,这样调用这个函数就能得到回应了 Dialogue: 0,0:03:01.88,0:03:04.42,Default,,0000,0000,0000,,现在我们的值显示在此,好棒! Dialogue: 0,0:03:04.77,0:03:06.65,Default,,0000,0000,0000,,事实上我们能够缩短我们的函数, Dialogue: 0,0:03:06.65,0:03:08.34,Default,,0000,0000,0000,,我们甚至不用把它存进变量, Dialogue: 0,0:03:08.34,0:03:10.05,Default,,0000,0000,0000,,我们仅仅把这儿的整个表达式 Dialogue: 0,0:03:10.05,0:03:14.27,Default,,0000,0000,0000,,放进回车,然后它就仅有一行。很好。 Dialogue: 0,0:03:15.07,0:03:17.17,Default,,0000,0000,0000,,好吧,现在我们可以履行 Dialogue: 0,0:03:17.17,0:03:20.44,Default,,0000,0000,0000,,在一生的各个年龄段\N计算炸甜面圈的总量 Dialogue: 0,0:03:20.44,0:03:23.45,Default,,0000,0000,0000,,只需点击这个函数功能\N并且输入年数。 Dialogue: 0,0:03:24.21,0:03:28.70,Default,,0000,0000,0000,,让我们来看看,这是 calcTotalDonuts(25), Dialogue: 0,0:03:28.70,0:03:34.06,Default,,0000,0000,0000,,没有打错地方,it's calcTotalDonuts(65) Dialogue: 0,0:03:36.37,0:03:40.24,Default,,0000,0000,0000,,好了!很棒,如果他到了65岁, Dialogue: 0,0:03:40.24,0:03:44.41,Default,,0000,0000,0000,,它就吃了70,000个炸甜面圈。\N这太多了。 Dialogue: 0,0:03:45.14,0:03:48.05,Default,,0000,0000,0000,,我觉得Winston不会活那么长。(笑声) Dialogue: 0,0:03:48.05,0:03:50.33,Default,,0000,0000,0000,,但现在我们已经把它做成了函数功能, Dialogue: 0,0:03:50.33,0:03:52.89,Default,,0000,0000,0000,,要改变一下它的某些部分也很容易。 Dialogue: 0,0:03:53.18,0:03:55.14,Default,,0000,0000,0000,,比如Winston明白这个并且说, Dialogue: 0,0:03:55.14,0:03:58.86,Default,,0000,0000,0000,,“哇,哇,这太多了。如果我每天\N只吃一个怎么样?” Dialogue: 0,0:03:58.86,0:04:02.24,Default,,0000,0000,0000,,行, 我们可以从这儿开始,\N改变这一个数字, Dialogue: 0,0:04:02.73,0:04:04.33,Default,,0000,0000,0000,,然后看看所有的变化。 Dialogue: 0,0:04:04.33,0:04:07.97,Default,,0000,0000,0000,,这是23,000.还是很多。\N那么Winston又说, Dialogue: 0,0:04:07.97,0:04:10.77,Default,,0000,0000,0000,,“好吧,好吧,如果我每周吃一个怎么样?” Dialogue: 0,0:04:10.77,0:04:12.48,Default,,0000,0000,0000,,好的,这样比较合理。 Dialogue: 0,0:04:12.48,0:04:15.02,Default,,0000,0000,0000,,那么我们只需要把365 变为50, Dialogue: 0,0:04:15.02,0:04:17.15,Default,,0000,0000,0000,,因为好像是一年50个星期,是吗? Dialogue: 0,0:04:18.10,0:04:22.80,Default,,0000,0000,0000,,好,这就好多了,是吗?\N3000个炸甜面圈,这看起来还比较合理。 Dialogue: 0,0:04:22.80,0:04:26.75,Default,,0000,0000,0000,,所以,你看利用函数和回返值, Dialogue: 0,0:04:26.75,0:04:30.63,Default,,0000,0000,0000,,我们能够缩短编码而且挽救生命。