Recursão
Como quebrar facilmente seu código?
Isso pode ser feito com recursão.
Recursão em Java é um processo no qual um método chama a si mesmo. Por que isso pode quebrar o código? Porque pode levar a uma recursão infinita, que consumirá memória sem fim e diminuirá o desempenho do dispositivo.
Então, por que precisamos de recursão afinal?
Em alguns casos, a recursão pode ser útil, mas deve ser usada com cautela. A recursão, por exemplo, pode substituir um loop while.
Vamos olhar para um exemplo de uso da recursão para calcular a soma de todos os números até um número passado como parâmetro:
Main.java
O método calculateSum()
chama a si próprio com valores reduzidos. Também temos um ponto de saída dessa recursão quando a variável num
se torna zero. Este método calcula a soma de todos os números de 1 até o parâmetro, no nosso caso 5
. Vamos observar o fluxograma que mostra como a recursão funciona usando este método como exemplo:
O exemplo acima demonstra como o método se chama com valores reduzidos, e quando atinge o zero, ele volta somando os valores. Também podemos observar como o corpo do bloco if
é executado, onde adicionamos num
ao resultado da chamada do método com um valor reduzido. Os valores intermediários após cada chamada do método são indicados próximo às setas.
Podemos evitar o uso de recursão?
A recursão também pode ser substituída por um loop regular. Vamos olhar para um exemplo onde primeiro usamos um método recursivo e depois usamos um for
loop para realizar a mesma operação:
Main.java
Aqui podemos ver como substituímos nosso método recursivo por um loop for
regular, utilizando a variável i
para incrementar nosso resultado
por i
a cada vez até que alcance o número especificado num
, que é o parâmetro no método.
Conclusão
Em conclusão, posso dizer que métodos recursivos são bastante interessantes mas também perigosos. Com a recursão, você pode tanto melhorar quanto quebrar completamente seu código. Quase toda recursão pode ser substituída por um loop utilizando chamadas de métodos. Portanto, usar recursão ou substituí-la por um método é uma escolha sua. Mas se ainda assim optar por usar recursão, mesmo que a tenha dominado bem, seja extremamente cauteloso.
Tudo estava claro?
Conteúdo do Curso
Java Extended
Java Extended
Recursão
Como quebrar facilmente seu código?
Isso pode ser feito com recursão.
Recursão em Java é um processo no qual um método chama a si mesmo. Por que isso pode quebrar o código? Porque pode levar a uma recursão infinita, que consumirá memória sem fim e diminuirá o desempenho do dispositivo.
Então, por que precisamos de recursão afinal?
Em alguns casos, a recursão pode ser útil, mas deve ser usada com cautela. A recursão, por exemplo, pode substituir um loop while.
Vamos olhar para um exemplo de uso da recursão para calcular a soma de todos os números até um número passado como parâmetro:
Main.java
O método calculateSum()
chama a si próprio com valores reduzidos. Também temos um ponto de saída dessa recursão quando a variável num
se torna zero. Este método calcula a soma de todos os números de 1 até o parâmetro, no nosso caso 5
. Vamos observar o fluxograma que mostra como a recursão funciona usando este método como exemplo:
O exemplo acima demonstra como o método se chama com valores reduzidos, e quando atinge o zero, ele volta somando os valores. Também podemos observar como o corpo do bloco if
é executado, onde adicionamos num
ao resultado da chamada do método com um valor reduzido. Os valores intermediários após cada chamada do método são indicados próximo às setas.
Podemos evitar o uso de recursão?
A recursão também pode ser substituída por um loop regular. Vamos olhar para um exemplo onde primeiro usamos um método recursivo e depois usamos um for
loop para realizar a mesma operação:
Main.java
Aqui podemos ver como substituímos nosso método recursivo por um loop for
regular, utilizando a variável i
para incrementar nosso resultado
por i
a cada vez até que alcance o número especificado num
, que é o parâmetro no método.
Conclusão
Em conclusão, posso dizer que métodos recursivos são bastante interessantes mas também perigosos. Com a recursão, você pode tanto melhorar quanto quebrar completamente seu código. Quase toda recursão pode ser substituída por um loop utilizando chamadas de métodos. Portanto, usar recursão ou substituí-la por um método é uma escolha sua. Mas se ainda assim optar por usar recursão, mesmo que a tenha dominado bem, seja extremamente cauteloso.
Tudo estava claro?