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

tabuada dando NaN

estou com problemas no codigo e não consigo resolver. No meu codigo eu fiz com que ele calculasse a tabela da tabuada que quisermos.

por exemplo a 7, no 7 x 1 = (o resultado é NaN)

5 x 1 = NaN 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45 5 x 10 = 50

3 respostas

Oi, Juan, como vai?

Teria como você enviar seu código aqui no fórum? Assim conseguirei te auxiliar melhor.

Fico no aguardo.

Abraços!

<meta charset="UTF-8">
<script>

    function pulaLinha() {

        document.write("<br>");

    }

    function mostra(texto) {

        document.write(texto);
        pulaLinha();

    }

    var tabuadaVisada = parseInt(prompt("qual tabuada de multiplicação você gostaria ?"));

    var numeroResultado = (tabuadaVisada * numerosTabuada);

    for (var numerosTabuada = 1; numerosTabuada <=10; numeroResultado = (tabuadaVisada * numerosTabuada)) {


        mostra(tabuadaVisada + " x " + numerosTabuada + " = " + numeroResultado);
        numerosTabuada = numerosTabuada + 1;


    }


</script>
solução!

Oi, Juan, tudo bem?

O erro está nesta linha var numeroResultado = (tabuadaVisada * numerosTabuada);. Perceba que nesse ponto de código a variável numerosTabuada ainda não existe, essa variável só vai existir dentro do contexto do for que vem só depois, então a multiplicação com essa variável não ocorre de forma correta, já que no instante da multiplicação ela possuí valor undefined, pois ela não foi declarada antes da realização do cálculo, por este motivo a variável numeroResultado fica com o valor NaN, já que não é possível multiplicar um número com um valor undefined.

Para corrigir o problema você poderia fazer o seguinte:

var numeroResultado = (tabuadaVisada * 1);

Com isso, a variável numeroResultado receberia o primeiro valor da tabuada e seria utilizada para printar o valor na primeira execução do for.

Espero ter ajudado.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software