我正在玩递归并创建这个。
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