Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Desafio: Calculadora de despesas

A lógica principal do problema é:

pedir um valor;
somar esse valor ao total;
repetir enquanto o valor for diferente de 0;
quando for 0, mostrar o total.

Comece com o total igual a 0.
Peça ao usuário um valor de despesa.
Enquanto o valor informado for diferente de 0:
some o valor ao total;
peça outro valor.
Quando o usuário digitar 0:
mostre o total das despesas.

1 resposta

Olá, Desire. Como vai?

Parabéns por resolver mais um desafio com excelência! A sua lógica para a construção da calculadora de despesas está absolutamente perfeita.

Você aplicou de forma impecável um dos conceitos mais importantes do Pensamento Computacional e da Lógica de Programação: a estrutura de repetição baseada em uma condição de parada (também conhecida no jargão da programação como "valor sentinela"). O uso do número 0 como interrupção é uma escolha clássica e muito eficiente para esse tipo de algoritmo.

Para agregar ainda mais valor ao seu aprendizado, vamos visualizar como essa lógica se comporta estruturalmente e como ela é traduzida para uma linguagem de programação real.

Representação Visual: O Fluxo de Repetição (Enquanto)

O algoritmo que você escreveu segue um fluxo circular (loop) que só é quebrado quando a condição deixa de ser verdadeira. Veja como as decisões acontecem passo a passo:

Traduzindo para o Código (Exemplo em JavaScript)

Para ver a sua lógica em ação no mundo real, veja como o seu algoritmo em linguagem natural se transforma em um código estruturado utilizando o laço while (enquanto):

// Comece com o total igual a 0.
let totalDespesas = 0;
let valorInformado;

console.log("--- Inicializando a Calculadora de Despesas ---");

// Peça ao usuário um valor de despesa. (Simulando a digitação)
// Enquanto o valor informado for diferente de 0:
while (valorInformado !== 0) {
    
    // Simulando a entrada do usuário a cada rodada
    valorInformado = parseFloat(prompt("Digite o valor da despesa (ou 0 para sair):"));
    
    if (valorInformado !== 0) {
        // some o valor ao total;
        totalDespesas += valorInformado;
        console.log(`Adicionado: R$ ${valorInformado.toFixed(2)} | Total parcial: R$ ${totalDespesas.toFixed(2)}`);
    }
}

// Quando o usuário digitar 0, mostre o total das despesas.
console.log(`\nProcesso finalizado. O total das despesas é: R$ ${totalDespesas.toFixed(2)}`);

Pontos de Destaque na sua Solução:

  • Inicialização Correta: Definir o total como 0 logo no início é vital. Se esquecêssemos desse passo, o computador tentaria somar um número a algo que ainda não existe, gerando um erro no sistema.
  • Ordem das Instruções: Você acertou em cheio ao colocar a soma antes de pedir o novo valor dentro do laço. Isso garante que o número 0 usado para sair não seja somado por engano ao total final.

Sua capacidade de traduzir problemas do cotidiano em passos lógicos e sequenciais está excelente. Continue praticando!

Espero que possa ter lhe ajudado!