这是概念梳理的第04篇文章。 很多程序设计初学者进入函数知识学习时,会觉得很困难,不容易理解,使得函数内容成为了学习的分水岭,也成为转向全面对象程序设计语言的拦路虎。 总结原因,两方面的问题: 第一:没有弄清楚程序设计当中的函数概念,结构混乱。 第二:函数形参无法确定,一阵乱写。 严Sir会用2个比喻来讲解,相信会让你恍然大悟。 1 到底什么是函数?—— 一把手枪程序设计当中,到底什么是函数呢?函数有几类?函数的结构是什么呢? 01 函数的定义 清华大学出版社C程序教材当中对于函数定义:
学到一定程度后,来看这个定义,你会发现讲的很透彻,但是初学者看到这个定义时,往往是一头雾水。 严Sir对于函数的理解是: 函数,就是具有一定格式,完成特定功能的程序段,简单理解就是一件工具,如 一把手枪 。 分析一下:提到手枪,大家的脑海里面是不是浮现出这样的一幅画面。 手枪的作用是:完成击发子弹进行射击的功能。 手枪的结构:手机由固定的几个部分构成。 所以,手枪是具有一定格式,完成特定功能的一件工具,它就是函数。 02 函数的结构 函数由两部分组成,一是函数头,二是函数体。 函数头包括3个内容,一是函数类型(就是函数返回值类型),二是函数名字,三是形参列表。 函数体就是函数中,用花括号(大括号)括起来的,具体功能代码。 具体格式如下:
03 函数分类 函数可以分为两类: 第一:一把手枪如果放在军火库里面,直接拿出来用就可以了,这种函数叫 库函数。 第二:如果手枪不存在,需要自己一步一步来做,做好才能用,这种函数叫做 自定义函数。 04 函数的两个阶段 第一个阶段:函数定义阶段,就是函数制造阶段,把手枪做出来。 第二个阶段:函数调用阶段,就是使用函数,运用手枪做事情。 对于库函数而言,只有第二个阶段,对于自定义函数,两个函数都需要。 2 到底如何确定形参?—— 手枪弹夹对于很多新手而言,函数定义阶段是难点。基本格式没有问题,具体代码也会写,只是这个形参要不要,要几个,什么类型,完全靠蒙。 01 形参的定义 什么是形参?这个问题需要弄明白。 先思考一个问题:手枪生产商在制造手枪时,会不会将子弹放在手枪里面? 一定不会。但是手枪生产商一定会为手枪配上一个东西——弹夹。 请问这个弹夹是用来做什么的?是用来在使用时装子弹用的。 弹夹是手枪的一部分,在生产手枪时,弹夹是没有子弹的,在使用手枪时,弹夹才会装进子弹。于是我们说:弹夹是为了使用手枪时装子弹预留的空间。 形参就是弹夹。形参就是为了使用函数时所预留的空间,形参就是为了使用函数时所预留的变量。 02 形参的确定 这是函数定义中最难的问题。 需不需要形参?需要几个形参?形参是什么类型? 这可以说是函数定义中的追命三连问。 为了解决这些问题,严Sir总结出一个总原则,只要按照这个总原则进行思考,所有问题迎刃而解。
接下来,我们通过具体的例子来分析。 例1:定义一个函数,返回三个整数当中的最大值。
例2:定义一个函数,返回1~100的和。
例3:定义一个函数,返回1到整数n的和。
总结与思考本文对于函数定义当中的难点问题进行解决,运用两个比喻让小伙伴们加深了思考。接下来请小伙伴们思考下面两个函数有什么不同,欢迎大家在留言区里讨论。 例1:实现一个函数,在屏幕上输出3行4列的星号图形。 例2:实现一个函数,在屏幕上输出n行m列的星号图形。 |
|