提问老师
来源:4-5 编程练习
leepulse
2021-02-07 20:00:10
//编写一个函数,这个函数会自己调用自己
function single(w) {
if (w == 0) return '我的小鲤鱼';
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语句,返回“我的小鲤鱼”
最后进行字符串的拼接实现任务效果
以上为代码的执行过程,同学可参考理解
3、这里不理解可以看出同学对递归函数的认识还不够,建议同学可以多看几遍关于递归函数的讲解。这里就是使用的递归函数,递归函数实际就是在函数内部调用自己从而实现循环执行。
祝学习愉快!
相似问题