自定义函数中有一种特殊的函数调用方法,叫做“嵌套调用”。
大概意思就是调用的自定义函数中包含着另外一个函数。
本期我将用一个简单的“根据输入的年月数据,输出日数”一个项目,探讨嵌套调用。
好,让我们上正片:
事实上,我们在制作一个大型项目时,会用到无数个小的函数,每一个小的函数都是一块小的乐高积木零部件,当它们相互拼接,互相协作,就能组成精致的模型。编程项目也是一样。
基础逻辑框架:
用户输入月份>>>>>函数判断月份对应天数>>>>>>输出天数。
在此基础上:
升级为:用户输入年月>>>>>函数判断对应天数【函数嵌套调用判断是否闰年】>>>>>函数输出更加泛用和正确的天数。
搭建第一层框架:
如见,这个主函数完成了【输入】【输出】两个动作。
同时将中间的天数判断工作交给了get_days_of_month函数进行操作。
设计日数查找函数:
如图,我们用一个整型数组来存储每月的日数数据,以方便我们调用。
tips:因为数组的下标是从0开始计数的,所以这里故意浪费了一个元素的内存,来保证调用时能瞄准想要的月份。
此外,设置一个形式参数int month来接收主函数的实际参数,并将返回值设计成arr[i]
方便让返回值对接主函数的参数day。
至此,一个基础的日数查找功能就完成了。
但这并没有结束,闰二月有29天。以下,是用嵌套调用来实现输出闰二月的方法
首先,对主函数中的变量进行补充:
追加了变量year,包括输入,和调用get_days_of_month函数的实际参数。
用于接收的形式参数也要补充。如下:
编写闰年判断程序:
用布尔形式设计函数is_leap_year.函数,接收year参数。
用逻辑或运算符包含闰年计算的两种方式。
是闰年:返回true>>>>>>由函数get_days_of_year接收>>>>>>接收后结合月份再次判断:
至此,算是大功告成了。
我们可以输入任意的数据进行尝试。项目完成。
在这个项目中:函数is_leap_year被函数get_days_of_month调用,即为嵌套调用。
最后,感谢您的阅读,您的关注和点赞支持,就是我最大的动力。感谢!