1
resposta

[Dúvida] operação matemática de adição

no desafio 3 de criar um sistema de pontuação. Gostaria de somar o total de pontos e não está somando, por isso meu código continua dando errado. Como posso corrigir?

alert ('Sistema de pontuação para um jogo');
let jogada1 = prompt ('Inserir total de pontos da jogada 1:');
console.log ('conferir se jogada1 está sendo salva', jogada1);
let jogada2 = prompt ('Inserir total de pontos da jogada 2:');
let jogada3 = prompt ('Inserir total de pontos da jogada 3:');
let total = (jogada1 + jogada2 + jogada3);
alert ('O total de pontos é de ' + total);
if (total >= 100) {
    alert ('Parabéns, você venceu!')
 } else {
    alert('Tente novamente para ganhar.')
 };
1 resposta

Oi, Raiane! Tudo bem?

Entendo perfeitamente o que está acontecendo com o seu código. É um detalhe bem comum quando estamos começando a trabalhar com entradas de dados no JavaScript.

O que ocorre é que a função prompt sempre recebe o que o usuário digita como uma String (texto). Quando você usa o sinal de + entre textos, o JavaScript entende que você quer juntar as palavras (concatenar) em vez de somar os números. Por exemplo, se você digitar 50 e 60, o resultado acaba sendo "5060".

Para resolver isso, precisamos converter o texto para um número antes de fazer a conta.

Como corrigir o código

Você pode usar a função parseInt() ou Number() para garantir que o JavaScript trate os valores como números inteiros. Veja como ficaria o trecho da soma:

alert('Sistema de pontuação para um jogo');

let jogada1 = parseInt(prompt('Inserir total de pontos da jogada 1:'));
let jogada2 = parseInt(prompt('Inserir total de pontos da jogada 2:'));
let jogada3 = parseInt(prompt('Inserir total de pontos da jogada 3:'));

// Agora o JavaScript vai somar os valores numericamente
let total = jogada1 + jogada2 + jogada3;

alert('O total de pontos é de ' + total);

if (total >= 100) {
    alert('Parabéns, você venceu!');
} else {
    alert('Tente novamente para ganhar.');
}

O que mudou?

  • parseInt(): Esta função analisa o texto que veio do prompt e o transforma em um número inteiro.
  • Soma numérica: Com os valores convertidos, o operador + volta a funcionar como uma adição matemática, permitindo que a sua condição if (total >= 100) funcione corretamente.

Faça esse teste no seu navegador e veja se agora a pontuação aparece da forma esperada. Se precisar de mais algum auxílio com a lógica, sigo à disposição para ajudar. Bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!