一个关于VB的问题...

来源:百度知道 编辑:UC知道 时间:2024/06/22 15:47:29
Option Explicit
Dim b As Integer
Private Sub form_click()
Dim a As Integer
a = 2: b = 1
Call sub1(a)
Print a, b
End Sub
Private Sub sub1(b As Integer)
b = b * 2 + 1
If b < 10 Then
Call sub1(b)
End If
b = b * 2 + 1
Print b,
End Sub
为什么执行的结果是23 47 47 1.

这是一个递归算法
call sub1(a)的时候a=2
执行b = b * 2 + 1后b=5
接着 If b < 10 Then
Call sub1(b)
End If
又开始执行sub1,---b=11然后b=2*11+1=23执行完毕回到end if开始执行,这样该明白了吧