Olá, Bruno. Como vai?
Parabéns pela excelente resolução do desafio! O seu algoritmo para a calculadora de despesas está estruturado de forma impecável. Você aplicou com muita precisão os fundamentos do pensamento computacional, utilizando conceitos essenciais de lógica como inicialização de variáveis, loops de repetição condicional e acumuladores de valor.
A escolha de usar o número 0 como uma "condição de parada" (também conhecida na programação como uma sentinela) é uma das melhores práticas para resolver problemas onde não sabemos previamente quantas vezes o usuário vai repetir a ação.
Para complementar o seu projeto e aproximá-lo ainda mais de um código real, vale a pena observar um detalhe sobre a estrutura do laço de repetição. Na sua descrição, você colocou para verificar o valor e depois perguntar se o usuário deseja continuar. Em termos lógicos e de fluxo de dados, podemos estruturar isso usando um laço de repetição Enquanto (While).
Veja como o seu algoritmo fica claro e estruturado quando o escrevemos em formato de pseudocódigo:
Início
// Inicialização da variável acumuladora
total_gasto = 0
Imprimir("Digite o valor da primeira despesa (ou digite 0 para encerrar):")
despesa = ConverterParaNumero(Ler())
// Laço de repetição que valida a condição de parada
Enquanto despesa != 0 faça
total_gasto = total_gasto + despesa
Imprimir("Digite o valor da próxima despesa (ou digite 0 para encerrar):")
despesa = ConverterParaNumero(Ler())
Fim Enquanto
// Saída de dados após o encerramento do laço
Imprimir("Total gasto no mês = R$ ", total_gasto)
Fim
Note que, ao ler a primeira despesa antes de entrar no laço Enquanto, garantimos que, se o usuário digitar 0 logo de primeira, o programa nem inicia a soma e vai direto para o final, exibindo o total zerado com sucesso.
Outra boa prática importante que adicionei foi o comando ConverterParaNumero. Quando o usuário digita algo no teclado, o computador geralmente lê como texto. Fazer essa conversão explícita garante que a operação total_gasto + despesa seja uma soma matemática real, e não uma junção de textos.
Seu raciocínio lógico está afiadíssimo. Continue praticando essa estruturação de algoritmos, pois ela tornará o seu aprendizado de linguagens como JavaScript ou Python extremamente fluido!
Espero que possa ter lhe ajudado!