我需要在这个程序中使用递归来进行学校项目。程序检查输入的数字是否是实数(在这种情况下由带小数的数字定义,字符为0-9(例如56.7)。如何使函数递归?
谢谢: - )
Module Real_Numbers
Sub Main()
Dim number As String
Dim check As Boolean
Console.WriteLine("Enter a number to check if it is a real number:")
number = Console.ReadLine()
check = CheckNumber(number)
If check = True Then
Console.WriteLine("The number is a real number")
Else
Console.WriteLine("The number is not a real number")
End If
Console.ReadLine()
End Sub
Function CheckNumber(ByVal number As String) As Boolean
Dim current As Char
For i As Integer = 0 To number.Length - 1
current = number.Substring(i, 1)
If current = "." Then
' Do nothing
Else
If IsNumeric(current) Then
' Do nothing
Else
Return False
End If
End If
Next
Return True
End Function
End Module
答案 0 :(得分:1)
鉴于这是一项家庭作业,我不打算为你编写代码。但我会这样说 - 有几种方法可以解决这个问题。一种简单的方法是将字符串(数字)传递给CheckNumber,然后检查第一个字符 - 如果它是数字,再次使用字符串的其余部分调用CheckNumber(所有内容减去刚检查的内容)。如果它不是数字,则返回false。你需要一个特殊的案例来处理最后一个字符 - 如果是数字,则返回true。如果你正确地传播布尔响应,你的递归应该在最后用正确的答案解开。
祝你好运!答案 1 :(得分:-1)
你应该从内部调用CheckNumber函数,这是一个递归。详细了解递归here。