4
respostas

Tem como melhorar mais?

Há como definir no prompt que o retorno seja sempre uma letra maiúscula? Creio que dessa forma melhoraríamos ainda mais o código.

<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");
    } else {
        mostra("Não pode dirigir");
    }

</script>
4 respostas

Oi, Fernando, tudo bem?

Você pode acrescentar mais uma verificação no seu if para mesmo que o usuário digite S minúsculo, o programe continue. Do ponto de vista do usuário, esse forma que aceita as duas formas é interessante

idade >= 18 && temCarteira == "S" | temCarteira == "s"

Espero ter te ajudado!

Olá Fernando, além da solução da Laís você também pode converter o conteúdo da variável temCarteira para letra maiúscula, ficando assim:

idade >= 18 && temCarteira.toUpperCase() == "S"

Assim você não precisará se preocupar com letras minusculas na variável.

Amigos, para aproveitar o post gostaria de tirar uma dúvida. Acrescentei mais um "if" ao final do meu código, colocando como condições a idade menor que 18 e o usuário respondendo que "sim" para possuir carteira, tem como eu exibir apenas o texto do último "if"? Da maneira que coloquei ele retorna também o texto do "if" do "Não pode dirigir". Não sei se me fiz entender, qualquer dúvida posso reformular, obrigado.

<meta charset="UTF-8">

<script>

    function pulaLinha(){

        document.write("<br>");

    }

    function escreve(texto){

        document.write(texto);
        pulaLinha();

    }

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

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

        escreve("Pode dirigir.");

    } else {

        escreve("Nao pode dirigir");

    }

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

        escreve("Como voce tem carteira se nao completou 18 anos??");

    }

</script>

Pelo o que eu entendi você quis dizer você pode fazer algo parecido com isso:

if (idade >= 18 && temCarteira.toUpperCase() == "S") {
    escreve("Pode dirigir.");
}
else if (idade < 18 && temCarteira.toUpperCase() == "N") {
    escreve("Nao pode dirigir");
}
else if (idade < 18 && temCarteira.toUpperCase() == "S") {
    escreve("Como voce tem carteira se nao completou 18 anos??");
}

você pode colocar um else if (condição)

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