Meu código não está obedecendo a operação matemática das variável pontos
Se você entra com 3 vitórias e um empate, em vez de ele mostrar 10 pontos ele mostra 91, não sei por que.
Meu código não está obedecendo a operação matemática das variável pontos
Se você entra com 3 vitórias e um empate, em vez de ele mostrar 10 pontos ele mostra 91, não sei por que.
Oi, Thiago
Mostre seu código
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br>");
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
}
var vitorias = prompt("Entre com o número de vitórias");
var empates = prompt("Entre com o número de empates");
var pontos = (vitorias * 3) + empates;
mostra("os pontos do seu time é " + pontos);
if(pontos > 28) {
mostra("Seu time está melhor do que no ano passado.");
}
if(pontos < 28) {
mostra("Seu time está pior do que no ano passado.");
}
if(pontos == 28) {
mostra("Seu time está igual igual ao ano passado.");
}
mostra("FIM")
</script>
Oi, Thiago
Em JavaScript, o sinal de adição "+" também é usado para concatenar (juntar) strings (texto).
Então:
// como o JS entende
let vitorias = "3"; // texto
let empate = "1"; // texto
let pontosVitoria = vitorias * 3;
// devido a multiplicação o JS tenta converter para número.
// pontosVitoria = "3" * 3 = 9
let pontos = pontosVitoria + empate; // devido o empate ser um texto, o "+" é usado para juntar número com texto
// pontos = 9 + "1" = "91"
A solução é converte "empate" para número
// usando "parseInt()" para converter texto(string) para número(int)
const vitorias = prompt("Entre com o número de vitórias"); // retorna texto
const empates = prompt("Entre com o número de empates"); // retorna texto
let pontos = (vitorias * 3) + parseInt(empates); // retorna um número
Nota: Prefira usar "let" e/ou "const" no lugar do "var". Entenda a diferença entre var, let e const no JavaScript
Tenta acrescentar essa variáveis!
var valorDoImpate = 1;
var ValorDaVitoria = 3;
var vitorias = prompt("Entre com o número de vitórias");
var empates = prompt("Entre com o número de empates");
var pontosVitoria = (vitorias * ValorDaVitoria);
var pontosImpate = (empates * valorDoImpate);
var pontos = (pontosVitoria + pontosImpate);
mostra("os pontos do seu time é " + pontos);
Ao invés de colocar so prompt na variável de vitórias e de derrotas, troque por parseInt(prompt(" "), então ficaria:
var vitorias = parseInt(prompt("Entre com o número de vitórias"));
var empates = parseInt(prompt("Entre com o número de empates"));
O parse Int serve pra converter texto em número