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.