Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Outra forma de receber número do prompt

Olá.

Pensando em Python, fiz um pouco diferente, sem usar o parseInt.

Primeiro declarei a variável recebendo um valor numérico, no caso 0 e depois atribuí à ela o retorno da função prompt.

Pelo que entendi, ao declarar a variável atribuindo um número, ele entende que se trata de uma variável do tipo integer (pelo menos em Pytrhon se eu quisesse float teria que atribuir o valor 0.0) e ao atribuir o retorno da função prompt para minha variável ele faz o parseInt automaticamente.

Estou errado em minha suposição?

<meta charset="UTF-8">

<script type="text/javascript">
    function pulaLinha(n){
        for (i = 0; i<n; i++){
            document.write("<br>");
        }
    }

    function mostra(texto, nLinhas){
        document.write(texto);
        pulaLinha(nLinhas);
    }

    function arredonda(valor, casas){
        var divisor = Math.pow(10, casas);
        return (Math.round(valor * divisor) / divisor);
    }

    var ptVitoria = 3;
    var ptEmpate = 1;
    var pontos = 0;
    var vitorias = 0
    var empates = 0

    vitorias = prompt("Número de vitórias");
    empates = parseInt(prompt("Número de empates"));

    pontos = vitorias * ptVitoria + empates * ptEmpate;

    mostra ("Seu time está com " + pontos + " pontos!", 1)

</script>
2 respostas

Olá Luiz, boa tarde.

Estou começando com programação praticamente do zero, sou formado em gestão de tecnologia e infelizmente o mercado não pede alguém sem experiência na área de gestão, logo, maioria das oportunidades são da área técnica, ou seja, DEV, seu perfil é exatamente o que estou buscando me tornar, alguém que entende bastante da área técnica e com essa experiência, atuar da melhor forma na gestão, pelo seu código já deu pra ver essa experiência adquirida com tanto tempo na área, com a pouca experiência que possuo digo, seu código está perfeito, criou funções que simplificaram dificuldades que qualquer desenvolvedor teria ao trabalhar com eles, está funcional, limpo e simples de entender, a parte que mais gostei foi o salto de linhas que até ver seu código, não sabia como iria fazer para pular uma quantidade que eu simplesmente digitasse sem precisar aumentar a quantidade de , meus parabéns.

solução!

Oi, Luiz!

Sua suposição está quase correta.

O prompt sempre retorna uma string, então, quando você atribuiu o retorno do prompt à variável que era number, sem um parseInt, ela passou a ser string. Faça um teste com o operador typeof, que retorna o tipo de uma variável, e veja o que sai no console:

var vitorias = 0

console.log(typeof vitorias) // number

vitorias = prompt("Número de vitórias");

console.log(typeof vitorias) // string

Mas, sim, o Javascript realmente parseou a variável em outro momento, que foi na operação matemática:

pontos = vitorias * ptVitoria + empates * ptEmpate;

Antes desse momento, a variável "vitorias" era uma string, porém, quando tentamos multiplicar, dividir ou subtrair string com number, o Javascript faz a conversão, automaticamente, da string para uma number para que o cálculo possa ser feito. Nesse momento, houve a conversão.

Porém, isso não acontece quando tentamos somar string com number, nesse caso, o Javascript vai concatenar as variáveis numa string. Como você fez uma multiplicação, deu certo, mas se fosse uma soma (vitorias + ptVitoria), ele teria concatenado e sua operação matemática não teria dado certo.

Bons estudos!