目标

  • 了解函数是什么
  • 掌握如何定义一个函数

函数是什么

本章我们学习一个新的概念————函数。

你可以简单的将函数看作为一个黑匣子,给它输入参数后,它将会按照一定的规则,执行相应的指令或输出数据。

让我们用生活中的一个小物件来理解什么是函数。

假设你家有一台榨汁机,通过它,就能榨出鲜美可口的果汁。而具体榨出来的是什么果汁呢?那就要看你放进榨汁机的是什么水果啦。

而对于函数,你完全可以将它想象成是一台榨汁机。你只需要给定不同的输入参数(不同的水果),它就会有不同的输出(不同的果汁)。

如何定义一个函数

下图为本章中被经常使用的goto函数的定义。

以上的三行代码定义了一个名为goto的函数,其中输入参数为a。

接下来的两行则是此函数的函数体。

根据上面的例子,我们可以得到如下的定义一个函数的通用格式。

如何调用一个函数

所谓调用函数,其实就是指使用函数。

对于上面定义的goto函数,我们可以这样调用它。

上面小括号中的bridgh和match是输入参数。

由此,我们可以得到调用函数的格式为:

函数调用时发生了什么

通过下面这个例子,我们来看一下,在函数调用时,到底发生了什么?

当执行goto(bridge)这一行语句时,首先会将bridge赋值给a,即令a=bridge。注意,这是一个关键点。由于这个赋值过程并没有显式的表现出来,如果不知道这个赋值,可能会对函数的理解造成一些困难。

那么,在接下来的函数体内,我们可以认为所有的a都被先后替换成了bridge和match。

所以,goto(bridge)和goto(match)实际上等同于以下的代码:

为什么要引入函数的概念

好了,以上就是关于函数的所有内容了。

在学习了函数的概念以及用法之后,我们最后再来思考一个问题:为什么要使用函数,使用函数有什么好处?

其实不难看出,人们是为了偷懒才引入函数的,哈哈。因为使用函数,我们可以少写很多重复的代码,减少工作量。

作业

  • 故事模式76 - 90关
  • 进阶模式7-1 - 7-15关


    注意,一定保证要所有关卡都拿到三颗星。

小结

  • 函数封装了一段代码,调用函数即可执行这段代码。
  • 输入不同的参数,函数即可执行不同的动作。

问答

  • CodeMonkey学到现在,感觉越来越难,不想学了怎么办?

    难者不会,会者不难。如果你感觉到越学越困难,那就说明之前的知识点,你掌握得还不够好。所以,请回过头去复习一下之前的内容,切勿一心想着通关。

    坚持就是胜利。

CodeMonkey少儿编程第7章 函数的更多相关文章

  1. CodeMonkey少儿编程第2章 turnTo对象

    目标 了解对象的概念 了解方法与对象的关系 掌握turnTo指令的用法 在开始本章的学习之前,我们先来复习一下上一章的知识点. 在第1章中,我们学会了在这个游戏中最简单的两个指令. step x 其中 ...

  2. CodeMonkey少儿编程第3章 times循环

    目标 了解程序由哪三种基本的结构组成 了解循环的概念 掌握times的结构与用法 三种基本结构 计算机程序由三种最基本的结构组成,它们分别是: 顺序结构 循环结构 选择结构 千万不要被这些陌生的术语给 ...

  3. CodeMonke少儿编程第1章 step与turn

    第1章 step与turn 目标 了解游戏舞台的各组成部分 掌握step和turn指令的用法 说起计算机,对于不了解它的人来说,也许会感到有些神秘,其实不然,它不过是能够接收指令并且按照指令执行的一种 ...

  4. 【7】python核心编程 第十一章-函数和函数式编程

    1.*函数(与方法)装饰器 装饰器背后的主要动机源自python 面向对象编程.装饰器是在函数调用之上的修饰.这些修饰 仅是当声明一个函数或者方法的时候,才会应用的额外调用. 装饰器的语法以@开头,接 ...

  5. CoeMonkey少儿编程第4章 变量

    点击这里,现在就开启CodeMonkey的趣味编程之旅. 目标 了解什么是变量 了解变量的命名规则 掌握如何使用变量 变量 什么是变量?顾名思义,变量就是可以变化的量. 和变量相对的是常量,即不可变化 ...

  6. UNIX网络编程 第6章 I/O复用:select和poll函数

    UNIX网络编程 第6章 I/O复用:select和poll函数

  7. C++ primer plus读书笔记——第7章 函数——C++的编程模块

    第7章 函数--C++的编程模块 1. 函数的返回类型不能是数组,但可以是其他任何一种类型,甚至可以是结构和对象.有趣的是,C++函数不能直接返回数组,但可以将数组作为结构或对象的组成部分来返回. 2 ...

  8. 《JavaScript模式》第4章 函数

    @by Ruth92(转载请注明出处) 第4章:函数 一.JavaScript 中函数的两个重要特征 函数是第一类对象,可以作为带有属性和方法的值以及参数进行传递: 函数提供了局部作用域,而其他大括号 ...

  9. [转]Windows Shell 编程 第三章 【转自:http://blog.csdn.net/wangqiulin123456/article/details/7987901】

    第三章 操作文件 我依然清楚地记得,Windows95 的贝塔版出现的情形,它在朋友之间和学院中传播,好酷,全新的文件管理器,一种全图标,全彩色可客户化的界面,以及活泼的动画标识使得在文件拷贝和删除方 ...

随机推荐

  1. Java之大数相加

    之前参加某公司笔试,机试题目是大数相加,两大数是字符串形式,求和. 当时讨巧用的是BigDecimal类,但是发迷糊了,以为b1.add(b2)后,和就加到b1上了,结果一直输出不对. 其实应该是这样 ...

  2. hdu 6242 Geometry Problem

    Geometry Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Other ...

  3. nyoj-2357

    2357: 插塔憋憋乐 时间限制: 1 秒  内存限制: 128 MB提交: 107  解决: 28提交 状态 题目描述 众所不知,LLM是一位红警3大佬,打的非常厉害,但是曾经也是一位萌新,喜欢在家 ...

  4. LOJ6283 数列分块入门 7 (分块 区间加/乘)题解

    题意:区间加,区间乘,单点询问 思路:假设一个点为a,那么他可以表示为m * a + sum,所以区间加就变为m * a + sum + sum2,区间乘变为m * m2 * a + sum * m2 ...

  5. JVM学习路线

    JVM探究 请你谈谈你对JVM的理解? java8虚拟机和之前的变化更新? 什么是OOM,什么是栈溢出StackOverFlowError?怎么分析? JVM的常用调优参数有哪些? 内存快照如何抓取, ...

  6. Self-publishing 自出版

    Self-publishing 自出版 出书 传统出版 在过去的几十年中,发布意味着要经过代理商和发布者. 自出版 如今,自助出版允许作者绕过出版商和书店,直接向公众出售. refs https:// ...

  7. 为什么国内的好多具备 HTTPS 的网站却没有使用 HTTPS 重定向功能

    为什么国内的好多具备 HTTPS 的网站却没有使用 HTTPS 重定向功能 HTTPS 重定向 good demos ️ HTTPS http://www.xgqfrms.xyz/ https://w ...

  8. Expose Loader & shit jquery

    Expose Loader webpack https://github.com/xgqfrms/FEIQA/issues/31#issuecomment-418255126 require(&quo ...

  9. Elastic Search 原理剖析

    Elastic Search 原理剖析 Elasticsearch 是一个开源的分布式 RESTful 搜索和分析引擎,能够解决越来越多不同的应用场景. 搜索引擎 refs https://www.e ...

  10. Baccarat凭什么能成为DeFi后时代火爆新趋势?

    在各币种经历涨涨跌跌以后,DeFi后时代已然来临.那么,当前DeFi市场中哪个项目更被市场生态建设者看好呢?毫无疑问,Baccarat会成为最被看好的DeFi项目. Baccarat采用了独特的共识算 ...