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

Podemos adicionar um if dizendo que não pode dirigir se for maior de 18 e não tiver carteira! :)

<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(temCarteira == "N"){
            mostra("Não pode dirigir até tirar a carteira!")
        }
    }

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

</script>
2 respostas

Olá, Samuel! Tudo certo?

Parabéns! Achei ótimo que você acrescentou mais condições no seu programa! Ir além do que foi pedido é muito bom. Para deixar seu código ainda mais otimizado e legível, poderia utilizar os condicionais else if e else, não só if.

    var idade = parseInt(prompt("Qual é sua idade"));

    if( idade >= 18 ) {
        var temCarteira = prompt("Tem carteira? Responda S ou N");
        if( temCarteira == "S") {
            mostra("Pode dirigir!");
        }else if(temCarteira == "N"){
            mostra("Não pode dirigir até tirar a carteira!")
        }
    }else {
        mostra("Não pode dirigir!");
    }

O fluxo seria desse algoritmo seria:

  1. Pergunta idade ao usuário
  2. Se (if) tem idade +18 e tem carteira, então mostra "Pode dirigir!"
  3. Caso contrário, se (else if) tem idade +18 mas não tem carteira, então mostra "Não pode dirigir até tirar a carteira!"
  4. Caso contrário (else), quando não se encaixa em nenhum dos casos anteriores, mostra "Não pode dirigir!"

Perceba também que só é perguntado ao usuário se ele possui carteira caso ele tenha mais que 18 anos, colocando var temCarteira = prompt("Tem carteira? Responda S ou N"); dentro do condicional if( idade >= 18 ).

Esses detalhes são coisas que se aprende praticando e você já está indo muito bem, espero que essa resposta te acrescente algo. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado. ✓
solução!

Bem colocado pelo Samuel, a proposta inicial utilizando apenas "if", da forma como estava, não contemplava a possibilidade de "(idade>= 18) e (temCarteira == "N")", neste caso, tendo como valores de entrada: 20 e N, o programa não exibia nenhuma mensagem. Esse problema foi corrigido na substituição da cadeia de "if´s" por "if e else".