5
respostas

Tabuada não dá certo.

<script type="text/javascript">
        var tabuada = parseInt(prompt("Digite a tabuada que deseja calcular:"));
        var multiplicador = 1;
        var resultado = tabuada * multiplicador;

        while (multiplicador <= 10){
            document.write(resultado) ;
            multiplicador++;
        }
    </script>

Olá, pessoal do Alura. O programa está imprimindo na tela 10 vezes o mesmo número ao invés de fazer a multiplicação. Alguém me ajuda?

Abs.

5 respostas

Boa Tarde Rodrigo, Tudo bem? Tente fazer o calculo var resultado = tabuada * multiplicador; dentro do laço while.

Boa Tarde Rodrigo,

O que acontece é que dentro do seu while você não está recalculando o valor do resultado. Por isso sempre imprime o valor inicial. O correto seria algo assim:

 var tabuada = parseInt(prompt("Digite a tabuada que deseja calcular:"));
        var multiplicador = 1;

        while (multiplicador <= 10){

         resultado = tabuada * multiplicador;
            document.write(resultado) ;
            multiplicador++;

        }

Dessa forma o resultado sempre no começo do while ele faz o calculo do valor do resultado com os valores atualizados.

Oi, pessoal. Eu fiz a alteração que vocês falaram e deu certo. Mas eu não entendi muito bem. Porque a variável 'resultado' deve ser colocada dentro do laço while?

Obg.

Bom Dia Rodrigo, Tudo bem?

Fico feliz que tenha conseguido!

A questão do resultado dentro do laço é que o mesmo irá variar a cada iteração do laço para armazenar o resultado de cada calculo conforme o incremento do seu multiplicador. Por exemplo...

Definimos a tabuada como 5. Então, até 10 (Isso incrementando o seu multiplicador):

5 (tabuada) x 1 (multiplicador) = 5 -> Incrementamos em 1

5 (tabuada) x 2 (multiplicador) = 10 -> Incrementamos em 1

...

5 (tabuada) x 10 (multiplicador) = 50 -> Cada resultado será variado dentro do laço e então cada document.write(resultado) ; será diferente. Resultando em: 5 10 15 20 25 30 35 40 45 50

Espero ter ajudado !

Beleza amigo, consegui entender. Muito obrigado!!