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

Código do Tópico "Testando o seu conhecimento 1" capítulo 6

Identifiquei um erro no código do tópico "Testando o seu conhecimento 1" - capítulo 6. Na linha que pede a entrada do chute do usuário está assim:

var chute  = prompt("Qual o número pensado?");

o correto não seria:

var chute = parseInt(prompt("Qual o numero pensado?"));

? Estou certo?

4 respostas

O Javascript faz a conversão automática quando um "texto" que parece com um número é comparado com outro número.

Desta forma as duas construções estão corretas:

var chute = prompt("Qual o numero pensado?");

var chute = parseInt(prompt("Qual o numero pensado?"));

Mas, a forma proposta por você é mais legível.

Você pode experimentar isto alterando o código para ficar assim:

if(chute == numeroPensado) {
        mostra("Uau! Você acertou, pois eu pensei no " + numeroPensado);
    } else {
        mostra(chute);
        mostra(numeroPensado);
        mostra(chute-numeroPensado);
        //mostra("Você errou! Eu tinha pensado no " + numeroPensado);
    }

Você perceberá que o cálculo será feito corretamente.

Qual a finalidade de

mostra(chute-numeroPensado);

?

A finalidade é mostrar que tanto a variável "chute" como a variável "numeroPensado" estão armazenando valores que podem ser usados como números. Isto mostra, que neste caso específico, não precisamos usar o "parseInt" para converter a entrada do usuário. É uma forma simples de testar o código e verificar os valores que estão sendo passados para o script.

solução!

Você entenderá no próximo capítulo o motivo de ter funcionado sem parseFloat ou parseInt. Inclusive mostro uma situação onde há problema se não usar.