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

O meu programa não quer ler um novo valor

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

 function pularLinha () {document.write ("<br>");}
 function mostra (frase) {document.write (frase); pularLinha();}

 var tabuadaDe = 7
 var fator = 1
 var produto = fator*tabuadaDe

mostra (fator +" x "+ tabuadaDe + " = " +produto); fator = fator + 1
mostra (fator +" x "+ tabuadaDe + " = " +produto); fator = fator + 1


</script>

O "var produto" não consegue ler que o "var fator" teve uma alteração de valor?

3 respostas
solução!

E aí, Paulo!

O erro acontece porque a multiplicação é feita uma única vez. Após você alterar o valor de fator, a conta não é feita novamente.

Fazendo a conta após realizar o incremento, o código funciona corretamente:

mostra (fator +" x "+ tabuadaDe + " = " +produto); fator = fator + 1
produto = fator*tabuadaDe
mostra (fator +" x "+ tabuadaDe + " = " +produto); fator = fator + 1

Entretanto, dessa maneira certos trechos do código estão repetidos. O ideal seria refatorar criando uma função multiplica() e chamá-la quando for necessário. Para incrementar os números sem repetir código, você pode utilizar uma estrutura de repetição, como while ou for, por exemplo, que você viu nas aulas.

Dessa forma, se você fizer a tabuada completa, não precisará fazer a conta 10 vezes para cada número.

Boa noite Rodrigo, Muito obrigado pelas dicas. Em relação a função multiplicação eu vou estudar melhor para ver como é que ela vai funcionar no meu programa e em relação as estruturas de repetição, eu realmente já estudei nas aulas, eu só fiz um programinha mais simples para tentar achar onde é que eu tava errando. Mais uma vez, muito obrigado.

Fico feliz em ter ajudado, Paulo!

Brinque um pouco experimentando colocar as estruturas de repetição dentro de funções. O resultado é um código muito mais limpo e reaproveitável.

Peço apenas que marque aquela primeira resposta como solução do tópico, pois isso ajuda outras pessoas com a mesma dúvida a encontrar a resposta.

Bons estudos!