如何使这个VB程序递归?

时间:2015-10-21 15:29:21

标签: vb.net function recursion methods procedure

我需要在这个程序中使用递归来进行学校项目。程序检查输入的数字是否是实数(在这种情况下由带小数的数字定义,字符为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

2 个答案:

答案 0 :(得分:1)

鉴于这是一项家庭作业,我不打算为你编写代码。但我会这样说 - 有几种方法可以解决这个问题。一种简单的方法是将字符串(数字)传递给CheckNumber,然后检查第一个字符 - 如果它是数字,再次使用字符串的其余部分调用CheckNumber(所有内容减去刚检查的内容)。如果它不是数字,则返回false。你需要一个特殊的案例来处理最后一个字符 - 如果是数字,则返回true。如果你正确地传播布尔响应,你的递归应该在最后用正确的答案解开。

祝你好运!

答案 1 :(得分:-1)

你应该从内部调用CheckNumber函数,这是一个递归。详细了解递归here