Um procedimento de recursiva é aquela que chama a própria. Em geral, isso não é a maneira mais eficiente Gravar código Visual Basic.
O procedimento a seguir usa a recursão para calcular o fatorial do argumento original.
Function factorial(ByVal n As Integer) As Integer
If n <= 1 Then
Return 1
Else
Return factorial(n - 1) * n
End If
End Function
Considerações sobre com procedimentos recursiva
Limitação de condições. Você deve Design um procedimento recursiva para testar pelo menos uma condição que pode finalizar a recursão e você também deve tratar o maiúscminúsc onde nenhuma condição for satisfeita em um número razoável de chamadas recursivas. Pelo menos uma condição que pode ser atendida sem falhas, o procedimento executa um alto risco de execução em um loop infinito.
De uso de memória. Seu aplicativo tiver uma quantidade limitada de espaço para as variáveis Local. Sempre que um procedimento chama a mesmo, ele usa mais do que espaço para cópias adicionais das suas variáveis Local. Se esse processo continua indefinidamente, ele eventualmente causará um erro de StackOverflowException.
Eficiência. Você pode substituir quase sempre um loop de recursão. Um loop não tem a sobrecarga de passando argumentos, inicializando armazenamento adicional e retornar valores. O desempenho pode ser muito melhor sem chamadas recursivas.
Mútua de recursão. Você pode observar desempenho muito baixo, ou até mesmo um loop infinito, se dois procedimentos chamar uns aos outros. Um design apresenta os mesmos problemas como um procedimento recursiva Simples, mas pode ser mais difícil detectar e Depurar.
Chamando com parênteses. Quando um procedimento de Function chama recursivamente, você deve seguir o nome do procedimento com parênteses, mesmo que não haja nenhuma lista de argumentos. Caso contrário, o nome da função será executado como que representa o valor retorno da função.
Testando. Se você Gravar um procedimento recursiva, você deve testá-lo com muito cuidado para verificar ele atende aos sempre alguma condição de limitação. Você também deve garantir que você não pode ficar sem memória devido a ter muitos chamadas recursivas.
Tarefas
Conceitos
Referência