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
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!
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 * 1Entã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.