我使用以下代码查找完全匹配。
使用递归函数。
但即使在执行return语句后它也不会返回任何值:
Public Function findMatch(ByVal startval As Integer, ByVal endVal As Integer) As Integer
Dim mid As Integer = Ceiling((startval + endVal) / 2)
Dim value As Integer = 110
If mid = value Then
Return mid
ElseIf mid > value Then
findMatch(startval, mid)
ElseIf mid < value Then
findMatch(mid, endVal)
End If
End Function
为什么这个函数没有返回任何值?执行返回后,控件转到End Function
然后转到findMatch(startval, mid)
,因此连续的步骤不会返回任何值。我正在寻找一个原因或解决方案,而不是寻找匹配值的替代方法。
提前致谢
答案 0 :(得分:3)
为什么这个函数没有返回任何值?
因为您没有返回值,请使用Return findMatch(startval, mid)
:
Public Function findMatch(ByVal startval As Integer, ByVal endVal As Integer) As Integer
Dim mid As Integer = Ceiling((startval + endVal) / 2)
Dim value As Integer = 110
If mid = value Then
Return mid
ElseIf mid > value Then
Return findMatch(startval, mid)
ElseIf mid < value Then
Return findMatch(mid, endVal)
End If
End Function