调用退出函数时出错 |递归的



我正在玩递归并创建这个。

ABBB运行正常,得到真实

巴布运行正常,得到真实

BBAB 运行正常,得到真实

BBBA运行不正常,出错

这部分函数运行正常,但是当调用 exit 函数时,如果代码行,则行跳到最后一端。当我 f8 通过代码时,它会来回跳转三次。这几乎就像它在编译 x3 if 循环而不是退出函数一样。

好的,这行得通。谢谢大家。

Function practieRecursive(userstring, UserStringIndex) As Boolean
UserStringIndex = UserStringIndex + 1
If CInt(UserStringIndex) > Len(userstring) Then
practieRecursive = False
Exit Function
ElseIf Mid(userstring, UserStringIndex, 1) = "A" Then
practieRecursive = True
Debug.Print practieRecursive
Exit Function
Else
practieRecursive = practieRecursive(userstring, UserStringIndex)
Exit Function
End If
Debug.Print practieRecursive
End Function

您在检查CInt(UserStringIndex) = Len(userstring)之前正在尝试Mid(userstring, UserStringIndex, 1) = "A"。重新排序您的支票。

Function practieRecursive(userstring, UserStringIndex) As Boolean
UserStringIndex = UserStringIndex + 1
If CInt(UserStringIndex) = Len(userstring) Then
practieRecursive = False
Exit Function
elseIf Mid(userstring, UserStringIndex, 1) = "A" Then
Stop
practieRecursive = True
Exit Function
Else
Call practieRecursive(userstring, UserStringIndex)
End If
End Function

最新更新