O desafio aqui é que não sabemos de antemão quantas despesas o usuário vai informar. Isso elimina a possibilidade de usar uma repetição contada (como "repita 5 vezes"). Precisamos de uma estrutura que continue enquanto uma condição for verdadeira — no caso, enquanto o valor informado for diferente de zero.
O algoritmo em linguagem natural
Iniciar o total acumulado com o valor zero.
Solicitar ao usuário o valor da primeira despesa.
Enquanto o valor informado for diferente de zero, fazer o seguinte: somar o valor informado ao total acumulado; em seguida, solicitar o próximo valor de despesa.
Quando o usuário informar zero, encerrar o processo de coleta e exibir o total acumulado como o gasto total do mês.
O valor zero funciona como um sinal de parada, o que em computação se chama sentinela. É uma convenção simples e eficiente: em vez de perguntar "você tem mais despesas?", o sistema apenas aguarda um valor especial que indica o encerramento.
Um ponto de atenção prático: em um sistema real, seria importante garantir que o usuário não informe valores negativos por engano, o que poderia distorcer o total. Uma evolução natural desse algoritmo seria adicionar uma verificação que rejeite valores negativos antes de somá-los, pedindo que o usuário informe novamente.