| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 571 人关注过本帖
标题:[求助]请大家来解答一下关于递归调用的题
取消只看楼主 加入收藏
qq258
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-3-16
收藏
 问题点数:0 回复次数:2 
[求助]请大家来解答一下关于递归调用的题
请大家来解答一下关于递归调用的题

Option Explicit

Private Sub Command1_Click()
Dim a As Integer, n As Integer
a = 2: n = 10
Print myfun(a, n); n

End Sub

Private Function myfun(a As Integer, n As Integer)
If n = 0 Then
Exit Function
Else

n = n - 1:myfun = a + myfun(a, n)
End If

End Function


这道题运行的结果是 20 0,我的思路是myfun = a + myfun(a, n)调用了10次后n=0 Exit Function,myfun = 20+ myfun(2, 0),但是myfun(2, 0)没有值啊,书上说递归调用的条件是要有结束的条件和结束时的值,但是这道题上没有结束时的值啊,myfun(2, 0)该等于多少啊?请大家解答一下


如果把n = n - 1:myfun = a + myfun(a, n),改为myfun = a + myfun(a, n-1),结果是20 10 ,为什么这次的n=10了啊,在自定义的函数过程中n 的终值等于0,n 在 myfun(a, n)后输出,n的值应该就是自定义的函数过程中n 的终值啊,为什么不改之前是0,改了之后就是10了啊。请大家指教
搜索更多相关主题的帖子: 递归 myfun Integer Function 
2006-03-16 10:12
qq258
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-3-16
收藏
得分:0 
以下是引用djccit在2006-3-16 12:59:00的发言:

这是递归调用里的两个不同概念的应用,一个传值,一个是传地址,

但是传值要加byval啊,还有那个myfun(2,0)没有值啊,怎么解释啊?请楼上的再解释一下,谢谢!!!

2006-03-16 16:13
qq258
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-3-16
收藏
得分:0 

这是vb二级考试的一道题,我只是想不通为什么?

2006-03-16 16:56
快速回复:[求助]请大家来解答一下关于递归调用的题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016688 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved