Sobes.tech
Junior — Middle

O que distingue a recursão infinita de um ciclo infinito na programação?

sobes.tech IA

Resposta da IA

Recursão infinita e ciclo infinito ambos levam à execução interminável do código, mas diferem em mecanismo e consequências:

  • Ciclo infinito — é um ciclo (por exemplo, while(true)) que nunca termina, mas não causa consumo adicional de memória a cada passagem. Ele é executado na mesma pilha de chamadas.

  • Recursão infinita — uma função chama a si mesma sem uma condição de saída, fazendo com que cada chamada adicione um novo quadro na pilha de chamadas. No final, a pilha transborda e o programa termina com um erro de estouro de pilha (StackOverflow).

Exemplo de ciclo infinito em Python:

while True:
    print("Ciclo infinito")

Exemplo de recursão infinita em Python:

def recurse():
    recurse()

recurse()

Portanto, um ciclo infinito geralmente apenas "congela", enquanto a recursão infinita leva a uma terminação abrupta devido ao estouro de pilha.