1
resposta

Licença para dirigir - Quando digito 18 ou idade maior e S, não apresenta o texto. Mesmo na reposta do professor, apresenta erro.

<meta charset="utf-8">

<script>

    function pulaLinha(){

        document.write("<br>");
    }

    function mostra(frase){

        document.write(frase);
        pulaLinha();
    }

    var idade = parseInt(prompt("Informe sua idade"));
    var carteira = parseInt(prompt("Você possui carteira? Responda S ou N"));

    if (idade < 18){

        mostra("Você não possui idade para dirigir");

    } else if ((idade >= 18) && (carteira == "S" || carteira == "s")){

        mostra("Você pode dirigir");
    }

</script>
1 resposta

Olá João, tudo bem?

O problema nesse caso é que você está dando um parseInt de um texto (S ou N). O resultado é NaN.

Experimente remover o parseInt do segundo prompt:

var carteira = prompt("Você possui carteira? Responda S ou N");

Um comentário adicional: O seu código não estava deixando de exibir uma mensagem pelo problema de conversão. O erro na conversão não quebra a aplicação, simplesmente retorna um NaN (not a number). As verificações que você definiu são feitas normalmente (mesmo com o NaN. Nenhuma mensagem é exibida pois não existe um retorno para o caso de o usário ter idade >= 18 e não ter carteira de motorista.

Espero ter ajudado.

Abraços! ;)