Oi, Arismar! Tudo bem?
Nesse caso, a função main
chama a função escolher_opcao
, e dentro de escolher_opcao
, há uma condição que pode levar a uma chamada de volta para main
, o que configura uma recursão indireta, onde main
chama escolher_opcao
que pode chamar main
novamente.
É importante notar que, embora a recursão seja uma ferramenta poderosa, ela deve ser usada com cuidado para evitar o consumo excessivo de memória ou mesmo um erro de "estouro de pilha" (stack overflow), que ocorre quando a pilha de chamadas atinge o limite de profundidade devido a chamadas recursivas excessivas.
Porém para tentar evitar esses problemas em ciclos de chamadas como o citado, implementamos que a função main
só seja chamada novamente se uma ação específica for realizada pelo usuário, como selecionar uma opção inválida.
Parabéns pela observação e obrigada por compartilhá-la com a nossa comunidade do fórum!
Um forte abraço e bons estudos!