提问老师

来源:4-5 编程练习

leepulse

2021-02-07 20:00:10

//编写一个函数,这个函数会自己调用自己

        function single(w) {

            if (w == 0return '我的小鲤鱼';

            return '抱着' + single(w - 1+ '的我';

        }

        document.write('吓得我抱起了' + single(3));

以上的代码中的return '抱着' + single(w - 1) + '的我';

为什么要这样写?不明白!

写回答

1回答

好帮手慕张

2021-02-08

同学你好,问题解答如下:

1、"return '抱着' + single(w - 1) + '的我';"代码意思为:返回“抱着”和“single(w - 1) ”和“的我”。具体执行如下:

2、传入的参数为3

第一次执行:参数w=3;不满足if语句判断条件w==0,因此执行下一句,返回"抱着"和调用一次函数(single(3-1))和“的我”。此时返回的结果为,”抱着抱着+single(3-1)+我的我的“。因为调用了一次函数,所以函数继续执行;

第二次执行:参数w=2;不满足if语句判断条件w==0,因此执行下一句,返回"抱着"和调用一次函数(single(2-1))和“的我”。此时返回的结果为,”抱着抱着+single(2-1)+我的我的我的“。因为调用了一次函数,所以函数继续执行;

第三次执行:参数w=1;满足if语句判断条件w==0,因此执行if语句中的return语句,返回“我的小鲤鱼”

最后进行字符串的拼接实现任务效果

以上为代码的执行过程,同学可参考理解

http://img.mukewang.com/climg/6020ce920966e9bf04880408.jpg

3、这里不理解可以看出同学对递归函数的认识还不够,建议同学可以多看几遍关于递归函数的讲解。这里就是使用的递归函数,递归函数实际就是在函数内部调用自己从而实现循环执行。

祝学习愉快!

0
heepulse
hp>听到老师说的递归函数实际就是在函数内部调用自己从而实现循环执行,现在明白了


h021-02-08
共1条回复

0 学习 · 15276 问题

查看课程