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

Porque meu codigo não funciona

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    var idade = parseInt(prompt("Qual é sua idade"));
    var temCarteira = prompt("Tem carteira? Responda S ou N");

    if( idade >= 18 ) {
        if( temCarteira == "S") {
            mostra("Pode dirigir");
        }
    }

    if(idade < 18) {
        mostra("Não pode dirigir");
    }

</script>
3 respostas
solução!

Oi Mauricio, tudo bem?

Se estiver se referindo à mensagem de "Não pode dirigir" que não aparece caso a pessoa seja maior de 18, porém sem carteira, basta colocarmos um else depois do if( temCarteira == "S"):

if( idade >= 18 ) {
    if( temCarteira == "S") {
        mostra("Pode dirigir");
    }
    else {
        mostra("Não pode dirigir");
    }
}

Perceba que dessa forma, assumindo que a pessoa seja maior de idade, nossa lógica ficaria mais ou menos assim:

Se tiver carteira: Pode dirigir!

Caso contrário (else): Não pode dirigir!

Espero ter ajudado, se ficou alguma dúvida estou aqui!

Bons estudos!!

Entendi, fica a dúvida e não sei se de repente isso vai vir mais a frente no curso. Se eu colocar no codigo

if ( temCarteira == "S") {
    mostra("Pode dirigir");
}
else {    
    mostra("Não pode dirigir");
}

E o usuário entrar no prompt com a letra "s" em minusculo, ele dá como não pode dirigir. Percebi que deve-se colocar exatamente igual ao que consta dentro da instrução, pequenas diferenciações como letra minuscula não são detectadas.

Como soluciona isso?

Oi Mauricio, nesse caso podemos utilizar uma função chamada toUpperCase(), ela pega uma string e converte todos os caracteres em letras maiúsculas.

Então se fizermos isso ao perguntarmos se a pessoa tem carteira, saberemos que assim que a pessoa responder com um "s" minúsculo, essa letra será convertida para um "S" maiúsculo. O mesmo vale para o "n" ou qualquer outro caractere que você digite no prompt:

var temCarteira = prompt("Tem carteira? Responda S ou N").toUpperCase();

Veja que colocando a função no final do prompt, estamos convertendo tudo o que ele recebe para caracteres maiúsculos. Testa aí e qualquer coisa me avisa se surgir alguma dúvida!

Bons estudos!!