Olá, Não consegui entender pq o empate vale um (+1). No código não tem var que indique que empate vale +1.
valeu
Olá, Não consegui entender pq o empate vale um (+1). No código não tem var que indique que empate vale +1.
valeu
Olá, boa tarde. No código, não há variável que indique que o empate vale 1 ponto, pois não há real necessidade de definir isso como variável.
A matemática para o cálculo de pontos que o código usa, se baseia no fato de que tanto vitórias quanto empates valem 1 ponto. E a partir disso, o número de vitórias é multiplicado por três, para valer três pontos, e o número de empates é mantido igual ao que estava, logo, continua valendo 1 ponto.
Veja no seguinte trecho de código:
var pontos = vitorias * 3 + empates;
Para maior clareza, esse trecho poderia ser reescrito como:
let pontos = (vitorias * 3) + (empates * 1)
// Onde cada vitória vale 1x3 pontos, e cada empate vale 1x1 ponto.
// Logo, cada vitória vale 3 pontos, e cada empate vale 1.
empates
e empates * 1
são a mesma coisa, mas por razões de clareza, pode ser interessante desenvolver o código assim, ou documentá-lo de forma que isso fique explícito. Se essa resposta o ajudou, por favor, marque o tópico como 'Solucionado'. Obrigado, e boa sorte :)
Se eu fizesse : var pontos = vitorias * 3 + empates * 1; Não iria precisar do parseInt, correto?
Na realidade, o parseInt não é realmente necessário, mas é muito importante por questões de boas práticas na programação. Observando o código abaixo, verifica-se que o input do usuário é do tipo string:
var vitorias = prompt("Entre com o número de vitórias.");
Entretanto, mais para frente no script, esse input será alvo de operações matemáticas, e portanto, deve ser convertido para um número. Essa conversão pode ser feita de duas formas: com o uso de parseInt, ou automaticamente pela engine do JavaScript. Quando não no modo "strict", o prórpio JavaScript converterá a string quando realizar a operação:
var pontos = vitorias * 3 + empates * 1
Então, você está certo, como nessa linha você informa que tanto 'vitorias' quando 'empates' serão multiplicados, então ambos 'vitorias' e 'empates' sofrerão conversão automática de 'string' para 'number'.
Mas, mesmo assim, o uso de 'parseInt' (ou 'Number()' dependendo do caso) é muito importante, e além de garantir a clareza das etapas do código, também garante maior segurança na execução do código. Se não utilizar o parseInt, e o input for uma string não-numérica, ou então um número octal, o JavaScript não realizará a conversão automática, e haverá um erro. Esse erro será especialmente difícil de corrigir, uma vez que a indicação de local será imprevisível. Mas ao usar a conversão de tipo do parseInt, se houver um erro, ele será apontado exatamente para onde a conversão ocorreu e isso facilitará na construção de um código mais seguro.