Em vez de pedir os valores um por um e esperar um zero para encerrar, optei por uma abordagem onde o usuário entrega tudo de uma vez, como uma lista já montada. O sistema recebe essa lista, percorre cada item e vai somando os valores até chegar ao final. Quando não há mais itens para processar, ele exibe o total.
Veja como fica o algoritmo em linguagem natural:
Receba a lista completa de despesas do mês.
Defina o total como zero.
Para cada item da lista, some o valor ao total acumulado.
Repita até que todos os itens tenham sido processados.
Ao final da lista, exiba o total gasto.
Essa lógica funciona bem porque separa o momento de coleta do momento de cálculo. O usuário não precisa lembrar das despesas em tempo real nem sinalizar quando terminou. Ele entrega a lista pronta e o sistema faz o resto. O resultado é o mesmo, mas o processo é mais confiável porque não depende de uma sequência perfeita de entradas.