永发信息网

VB6 为什么这么简单的递归程序停不下来?

答案:1  悬赏:50  手机版
解决时间 2021-11-20 04:49
  • 提问者网友:兔牙战士
  • 2021-11-19 12:54
VB6 为什么这么简单的递归程序停不下来?
最佳答案
  • 五星知识达人网友:低血压的长颈鹿
  • 2021-11-19 13:03
毛病出在循环上:
For i = 1 To 3
n = n + 1
Debug.Print "n=" & n
If n = 2 Then Exit Sub
Test
Next i

如果去掉循环,程序是可以结束的。
有了循环,如果改为If n = 2 Then End
也能结束。
不改的话,它退出的只是当前一轮的调用。还有未结束的调用,它继续运行。由于 是n先加1,再判断,所以它就自动绕过了退出的机会。

如果改成下面这样,也是可以正常退出的:
Private Sub Test()
Dim i As Long
For i = 1 To 3
Debug.Print "n=" & n
If n = 2 Then Exit Sub
n = n + 1
Test
Next i
End Sub追问好!专门给您加30分。谢谢。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯