Funções recursivas

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.

assinaturaAssine nossa Comunidade

Funções Recursivas

Ato de uma função chamar a mesma função de forma recursiva entrando em looping.

Vantagem

Diminui a repetição de código.

Desvantagem

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);
        }

      
    

Funções recursivas

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.

Próximas Aulas:
assinaturaAssine nossa Comunidade

Funções Recursivas

Ato de uma função chamar a mesma função de forma recursiva entrando em looping.

Vantagem

Diminui a repetição de código.

Desvantagem

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);
        }