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

Responder "N" fica em branco

Por que não aparece resposta quando respondo uma idade maior que 18 anos, porém N para Você tem carteira?

<meta charset = "UTF-8">

<script>

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

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

    var idade = parseInt(prompt("Qual a sua idade?"));
    var temCarteira = prompt("Você tem carteira? Responda S ou N");

    if (idade >= 18) {
        if (temCarteira == "S") {
            mostra("Você pode dirigir !");
        }
    }     
    else {
        mostra("Você não pode dirigir !");
    }


</script>
2 respostas

Porque o seu programa vai entrar no if(idade>=18), mas não no if da carteira == S, logo não mostra a mensagem "você pode dirigir" ai o seu progama será encerrado porque ele não entrará no else já que entrou no if

solução!

O problema é que seu código só considera a alternativa em que a pessoa é '>=18' e que 'tenha carteira'. Seu código não previu a resposta '>=18' e 'não tem carteira'.

A confusão pode ter ocorrido por pensar que o seu else diz um 'se não' aos dois if do código. Seu else dá um 'se não' apenas ao 'if >=18'.

O código não diz nada a respeito de quem é '>=18' mas 'não tem carteira'.

Sem alterar a ideia do seu código, uma possível solução ao problema no código é:

    if (idade >= 18) {
        if (temCarteira == "S") {
            mostra("Você pode dirigir !");
        } else   {
            mostra("Você não pode dirigir !");    
        }
    } else    {
        mostra("Você não pode dirigir !");
    }

Acrescentando um else para quem é '>=18' mas 'não tem carteira'.