Em engenharia de software, lidar com um número indefinido de entradas é um cenário clássico. No desenvolvimento backend, isso se assemelha a processar um stream contínuo de dados ou consumir eventos de uma fila até que um sinal específico de encerramento (como uma poison pill ou flag de parada) seja recebido e encerre a operação graciosamente (graceful shutdown).
Para este desafio do sistema financeiro, precisamos aplicar uma estrutura de repetição condicional (o famoso laço while). A execução continuará iterando e atualizando o estado da nossa variável até que o evento de parada (o valor 0) seja acionado pelo usuário.
Algoritmo em Linguagem Natural
INÍCIO
Inicializar a variável [Total_Gastos] com o valor 0.
Solicitar ao usuário: "Insira o valor da primeira despesa (ou digite 0 para encerrar e ver o total):" e armazenar na variável [Entrada_Atual].
ENQUANTO a [Entrada_Atual] for diferente de 0, FAÇA:
Passo A (Processamento): Somar o valor de [Entrada_Atual] à variável [Total_Gastos] (atualizando o estado do acumulador).
Passo B (Nova Coleta): Solicitar ao usuário: "Insira a próxima despesa (ou 0 para encerrar):" e atualizar o valor de [Entrada_Atual].
Quando o usuário digitar 0, o fluxo sai do laço de repetição.
Exibir a mensagem final: "O valor total das suas despesas é: [Total_Gastos]".
FIM
Essa lógica é eficiente porque processa a entrada sob demanda, sem prender o sistema a um número fixo de interações, e mantém a responsabilidade de gerenciar o total isolada em um único fluxo de execução.