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

Exercício posso_dirigir.html

<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 && temCarteira == "S"){
        mostra("Pode dirigir");
        alert("Pode dirigir");
    } else{
        mostra("Não pode dirigir");
        alert("Não pode dirigir");
    }

</script>
5 respostas

Brincando com o código, surgiu a dúvida, como faria para que não aparecesse a última mensagem "Não pode dirigir" caso a idade colocada seja menor que 18?

<meta charset="UTF-8">

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

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

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


    if(idade < 18){
        alert("Só carrinho de controle remoto para você");
        alert("Ainda falta(m) " + (18 - idade) + " ano(s) para poder tirar carteira");       
    }
    else{
    var temCarteira = prompt("Tem carteira? Responda S ou N");
    }
    if (idade >=18 && temCarteira == "S"){
        mostra("Pode dirigir");
        alert("Pode dirigir");
     }
    else{
        mostra("Não pode dirigir");
        alert("Não pode dirigir");
    }

</script>

Olá Rodrigo, tudo bem?

Vamos lá. Veja que você declarou duas instruções: um "mostra" e um "alert" respectivamente no último bloco do else, que estão exibindo a mesma mensagem duas vezes, só que uma impressa na tela e a outra em forma de pop-up:

 else{
        mostra("Não pode dirigir");
        alert("Não pode dirigir");
    }

Para parar de exibir duas vezes, basta remover uma das instruções para exibir a mensagem uma vez só, apagando a linha da instrução mostra ou a da alert, você decide qual achar melhor :)

Bons estudos, e espero ter ajudado!

Boa tarde, Rodrigo! Como vai?

Se vc não quer que as mensagens apareçam, basta remover o último else.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Acho que não fui claro. Eu não quero que a mensagem apareça apenas quando o primeiro -- if(idade < 18) -- for satisfeito.

Quando o segundo -- if (idade >=18 && temCarteira == "S"-- não for satisfeito, gostaria que a mensagem aparecesse.

O objetivo é, caso a pessoa não tenha 18 anos, nem é perguntado para ele se tem carteira de motorista.

solução!

Problema resolvido. Era só trocar o lugar de uma chave e fechar com duas no final.

<meta charset="UTF-8">

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

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

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


    if(idade < 18){
        alert("Só carrinho de controle remoto para você");
        alert("Ainda falta(m) " + (18 - idade) + " ano(s) para poder tirar carteira");
        mostra("Só carrinho de controle remoto para você");
        mostra("Ainda falta(m) " + (18 - idade) + " ano(s) para poder tirar carteira");         
    }
    else{
    var temCarteira = prompt("Tem carteira? Responda S ou N");
        if (idade >=18 && temCarteira == "S"){
        mostra("Pode dirigir");
        alert("Pode dirigir");
     }
        else{
        mostra("Não pode dirigir");
        alert("Não pode dirigir");
    }}

</script>