2
respostas

Posso dirigir mesmo com habilitação N

Digito N na habilitação, mas sempre mostra que posso dirigir. Qual o meu erro?

<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("Você pode dirigir")
    } 
    if (idade <18) {
        mostra("Você não pode dirigir")
    }




</script>
2 respostas

Fala cara, estou só aprendendo, mas acho que consegui identificar o seu erro!

Acho que faltou a condicional "else", então quando você digita N ou S o resultado é o mesmo, pois a condição que você colocou é apenas colocar qualquer uma dessas respostas. O programa entende apenas dessa forma "se ele já é maior de 18 pode dirigir", e te dá a resposta, caso colocasse a condicional "else", o programa entenderia como "Já que ele não respeitou as duas condições devo dar outra resposta".

Não sei se fui capaz de me fazer entender, mas de qualquer forma, vou colocar o meu trecho do código aqui para tentar te ajudar:

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

No meu código eu coloquei as duas barras em pé (||), pois elas funcionam como uma espécie de "Ou", tornando possível que a respostas seja feita com a letra maiúscula ou não.

Abraços!

Fala Hugo, então, temos um pequeno erro no código:

if (idade >= 18 && temCarteira == "S")`**;**`{
    mostra("Você pode dirigir")
} 

Você tirando essa parte já vai corrigir o problema da pessoa não ter a carteira e mesmo assim poder dirigir. Agora, é necessário você informar para o programa o que ele deve fazer se a pessoa não tem carteira:

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

if (idade >= 18 && temCarteira == "S"){

    mostra("Você pode dirigir");
} 
if (idade <18 || temCarteira == "N") {
        mostra("Você não pode dirigir");
}

Ou pra ficar ainda mais bonito:

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

if (idade >= 18 && temCarteira == "S"){

    mostra("Você pode dirigir");
} else {
        mostra("Você não pode dirigir");
}

Espero ter ajudado Hugo, sobre as letras serem maiúsculas ou minúsculas nas respostas, acredito que você aprenderá como lhe dar com isso posteriormente, então por enquanto não esquenta! Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software