Nesta aula você irá aprender como criar uma função recursiva no C#, verá as vantagens e as desvantagens de utilizar esta função e fará um exercício na prática para entender melhor o conceito.
Ato de uma função chamar a mesma função de forma recursiva entrando em looping.
Diminui a repetição de código.
Complexidade no entendimento.
No exemplo abaixo iremos mostrar a utilização de função recursiva através de leitura de arquivos.
// Temos a função principal (Main) onde chamamos a função LerArquivo pela primeira vez
// Ao final da função LerArquivo, chamamos novamente a mesma função para ler outro arquivo do diretório.
private static void LerArquivo(string numeroArquivo)
{
string arquivoComCaminho = @"C:\arquivos\arq.txt" + numeroArquivo + ".txt";
if(File.Exists(arquivoComCaminho))
{
using (StreamReader arquivo = File.OpenText(nomeArquivo))
{
string linha;
while((linha = arquivo.ReadLine()) !=null)
{
Console.WriteLine(linha);
}
}
}
string arquivoComCaminho2 = @"C:\arquivos\arq.txt" + (numeroArquivo + 1) + ".txt";
if(File.Exists(arquivoComCaminho2))
{
LerArquivo(numeroArquivo + 1); //Chama a própria função de forma recursiva
}
}
static void Main(string[] args)
{
LerArquivo(1);
}
Nesta aula você irá aprender como criar uma função recursiva no C#, verá as vantagens e as desvantagens de utilizar esta função e fará um exercício na prática para entender melhor o conceito.
Ato de uma função chamar a mesma função de forma recursiva entrando em looping.
Diminui a repetição de código.
Complexidade no entendimento.
No exemplo abaixo iremos mostrar a utilização de função recursiva através de leitura de arquivos.
// Temos a função principal (Main) onde chamamos a função LerArquivo pela primeira vez
// Ao final da função LerArquivo, chamamos novamente a mesma função para ler outro arquivo do diretório.
private static void LerArquivo(string numeroArquivo)
{
string arquivoComCaminho = @"C:\arquivos\arq.txt" + numeroArquivo + ".txt";
if(File.Exists(arquivoComCaminho))
{
using (StreamReader arquivo = File.OpenText(nomeArquivo))
{
string linha;
while((linha = arquivo.ReadLine()) !=null)
{
Console.WriteLine(linha);
}
}
}
string arquivoComCaminho2 = @"C:\arquivos\arq.txt" + (numeroArquivo + 1) + ".txt";
if(File.Exists(arquivoComCaminho2))
{
LerArquivo(numeroArquivo + 1); //Chama a própria função de forma recursiva
}
}
static void Main(string[] args)
{
LerArquivo(1);
}