6
respostas

Será que posso dirigir?

Segue código alterado:

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

</script>
6 respostas

Oi Rafael, tudo bem?

Parabéns, você realizou o exercício corretamente. Continue assim, e não hesite em consultar o fórum em caso de dúvidas.

Bons estudos =)

Eu usei o código acima e ele responde que pode dirigir mesmo colocando uma idade menor que 18 anos quando eu coloco que tenho carteira.

Eu fiz assim:

<meta charset="UTF=8">

<script>

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

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

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

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

    if(idade >= 18) {
        var temCarteira = prompt("Tem carteira? Responda S ou N");

        if(temCarteira == "S") {
        mostra("Pode dirigir!");
        }

        if(temCarteira == "s") {
        mostra("Pode dirigir!");
        }

        if(temCarteira == "N") {
            mostra("Não pode dirigir!");
        }

        if(temCarteira == "n") {
            mostra("Não pode dirigir!");
        }
    }

</script>

Paulo, fiz algumas correções no seu código:

<meta charset="UTF=8">

<script>
    function pulaLinha() {
        document.write("<br><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) {
        mostra("Não pode dirigir!");
    }

    if(idade >= 18) {

        if(temCarteira == "S") {
        mostra("Pode dirigir!");
        }

        if(temCarteira == "N") {
            mostra("Não pode dirigir!");
        }

    }
</script>

O erro estava ocorrendo porque você colocou a seguinte linha dentro de um if:

var temCarteira = prompt("Tem carteira? Responda S ou N");

Colocando junto a pergunta da idade, o código funcionou! Removi os if's com o S e N minúsculos, pois não são necessários, o programa entende das duas formas.

Espero que tenha lhe ajudado!

Na verdade, coloquei daquela forma para que a pergunta "Tem carteira?" só aparecesse se a pessoa tiver 18 anos ou mais. Se a pessoa responder que tem menos de 18 anos, o programa já vai pra resposta "Não pode dirigir!". E tentei o código corrigido assim, mas ele não reconhece a resposta quando digito "s" ou "n" minúsculo.

Oi Paulo.

O código não funciona quando coloca com s ou n minúsculo pois a validação está considerando somente em maiúsculo, conforme é apresentado no prompt. Vc pode adicionar tb as minúsculas se quiser:

        if(temCarteira == "S" || temCarteira == "s") {
        mostra("Pode dirigir!");
        }

        if(temCarteira == "N" || temCarteira == "n") {
            mostra("Não pode dirigir!");
        }

Ou se quiser, pode assim que pegar a letra do cliente, jogar sempre para maiúsculo. Então se digitarem em minúsculo ele converte:

 var temCarteira = prompt("Tem carteira? Responda S ou N").toUpperCase();

Segue um link caso queira saber melhor sobre esse método toUpperCase():

https://www.w3schools.com/jsref/jsref_touppercase.asp