VB.Net中的递归函数示例

VB.Net中的递归函数示例,vb.net,recursion,Vb.net,Recursion,我见过,但大部分都是C。对于希望学习递归的人来说,在VB.Net中看到真实世界的工作示例可能会很有帮助。如果有人在VB.Net中编程时遇到了麻烦,那么尝试破译这些代码会增加难度。我确实找到了我现在理解的东西,但是如果有一篇关于VB.Net示例的帖子,我可能会更快地找到它。这就是我问这个问题的部分原因: 任何人都可以在VB.Net中演示递归函数的一些简单示例吗?请看MSDN文章-。本文将帮助您理解递归的基础知识 请参阅以下连结: 这篇维基文章中的文章很棒 Sub walkTree(ByVal

我见过,但大部分都是C。对于希望学习递归的人来说,在VB.Net中看到真实世界的工作示例可能会很有帮助。如果有人在VB.Net中编程时遇到了麻烦,那么尝试破译这些代码会增加难度。我确实找到了我现在理解的东西,但是如果有一篇关于VB.Net示例的帖子,我可能会更快地找到它。这就是我问这个问题的部分原因:


任何人都可以在VB.Net中演示递归函数的一些简单示例吗?

请看MSDN文章-。本文将帮助您理解递归的基础知识

请参阅以下连结:


  • 这篇维基文章中的文章很棒

    Sub walkTree(ByVal directory As IO.DirectoryInfo, ByVal pattern As String)
     For Each file In directory.GetFiles(pattern)
        Console.WriteLine(file.FullName)
     Next
     For Each subDir In directory.GetDirectories
        walkTree(subDir, pattern)
     Next
    End Sub
    
    经典之一

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Try
            Label1.Text = Factorial(20).ToString("n0")
        Catch ex As Exception
            Debug.WriteLine("error")
        End Try
    End Sub
    
    Function Factorial(ByVal number As Long) As Long
        If number <= 1 Then
            Return (1)
        Else
            Return number * Factorial(number - 1)
        End If
    End Function 'Factorial
    
    Private子按钮1\u单击(发送方作为System.Object,e作为System.EventArgs)处理按钮1。单击
    尝试
    Label1.Text=Factorial(20).ToString(“n0”)
    特例
    Debug.WriteLine(“错误”)
    结束尝试
    端接头
    函数阶乘(ByVal数等于Long)等于Long
    
    如果数字这是直接来自msdn for VB.NET 2012的递归示例:

    Function factorial(ByVal n As Integer) As Integer
        If n <= 1 Then 
            Return 1
        Else 
            Return factorial(n - 1) * n
        End If 
    End Function
    
    函数阶乘(ByVal n作为整数)作为整数
    
    如果我在另一篇文章中看到一条注释,并且想知道,只有在您真正需要编写递归函数来解决问题时,才是真的,迭代并没有解决的是在目录或文件系统中循环并通过嵌套控件循环?@kcbeard:No,这不是真的。有很多情况下递归是有用的(我现在正在开发的应用程序中可以想到十几种)。例如,如果您想处理内部存储在树结构中的对象,那么递归肯定是您的朋友。@competite\u tech:在web应用程序中,递归函数会在什么时候阻碍其性能。在嵌套控件中循环是递归函数的正常用法吗?@kcbeard:你不应该认为递归函数与标准循环有太大的不同;如果必须使用递归来执行任务,那么应该使用它。但是,与循环一样,如果您过度使用它,并且有其他方法可以实现相同的目标(即缓存您不断查看的数据),那么您应该修改代码。是的,通过嵌套控件循环是递归的一种非常自然、正常的用法。您可以尝试通过将简单的数学方程应用于形式化方法来实现递归方法