Em uma função recursiva, qual é o elemento crucial para evitar um loop infinito?
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Em uma função recursiva, qual é o elemento crucial para evitar um loop infinito?
- A) A chamada da função
- B) Somente variáveis globais
- C) Condição de parada
- D) Recursão múltipla
- E) Aumento de variáveis
✅ Resposta correta: alternativa C
Resolução passo a passo
- Uma função recursiva é aquela que chama a si mesma para resolver versões menores do mesmo problema. Sem um critério de término, essa sequência de chamadas nunca se encerra, gerando um loop infinito (na prática, estouro da pilha de execução).
- O elemento que impede esse ciclo é a condição de parada (também chamada de caso base), um teste que, quando satisfeito, faz a função retornar um valor diretamente, sem fazer nova chamada recursiva.
- Por que as outras alternativas estão erradas: A) a chamada da função é justamente o que cria a recursão, e sozinha ela tende a perpetuar o ciclo; B) variáveis globais não são exigidas pela recursão e não garantem término; D) recursão múltipla significa que a função faz mais de uma chamada recursiva, o que não evita nada e pode até aumentar o custo; E) aumento de variáveis não tem relação com o encerramento das chamadas, e o que importa é que os argumentos se aproximem do caso base.
- Portanto, a resposta correta é a alternativa C, em concordância com o gabarito oficial.
💡 Dica: Pense sobre as condições de parada em funções recursivas.
Alternativa por alternativa
O aluno pensa que a própria chamada da função controla o fluxo e encerra a recursão, confundindo o mecanismo que repete a execução com o mecanismo que a interrompe.
Por que engana: Confundir a chamada da funcao com a condicao de parada, levando a pensar que a chamada sozinha evita loop infinito.
O aluno acredita que é preciso usar variáveis globais para controlar a recursão, quando o controle depende de um teste sobre os parâmetros e não do escopo das variáveis.
A condição de parada é o elemento que previne loops infinitos.
O aluno associa a ideia de 'mais recursão' a mais segurança, supondo que várias chamadas recursivas garantam o término, quando na verdade isso não impede o ciclo infinito.
O aluno acha que simplesmente variar ou aumentar valores em cada chamada encerra a recursão, sem perceber que é preciso uma condição explícita que leve a um caso base.
Raio-X da questão
função recursiva
avaliacao
conceito de funcao · conceito de condicao de parada
Revisar os conceitos de recursão e condições de parada.
Confundir a chamada da funcao com a condicao de parada, levando a pensar que a chamada sozinha evita loop infinito.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Em um programa, você precisa calcular o fatorial de um número usando recursão. Qual parte do algoritmo é crucial para…
- Para resolver um problema usando recursão, qual é o principal requisito da função recursiva?
- Em uma função recursiva que processa uma lista, qual é o papel do caso base (base case) na definição da recursão?
- Em um algoritmo de repetição simples, o que deve ser feito para evitar um loop infinito?
- Em um programa, qual é o uso correto da recursão?
- O que acontece quando uma função recursiva não possui uma condição de parada?
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
