Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

dúvida: como aceitar em maiúsculo ou minúsculo ao mesmo tempo.

Eu criei esse código para que ele aceitasse letras minúsculas, mas percebi que se usar "||" ele ignora a expressão : (if (idade >= 18 && temCarteira == "S") e já considera o "s". Então se eu colocar que minha idade é 5 e dizer que tenho carteira com s minúsculo, ele dá o resultado "Parabéns, você já pode dirigir", mas se fizer com o s maiúsculo, ele diz que não tem idade suficiente, mesmo tendo carteira (o correto).

Minha dúvida é, como posso fazer o programa enxergar "s" e "n" minúsculo, da mesma forma que ele vê essas letras em maiúsculo? Ou até ter a opção de colocar: s, sim, S, SIM ou n, N, não, NÃO... Sem distinguir se a string está em maiúsculo ou minúsculo.

Abaixo o código que tentei OBS: depois do erro eu entendi como funciona o pipe duplo (||) rs.

<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");

    mostra("Você tem: " + idade + " anos.");

    if (idade >= 18 && temCarteira == "S" || temCarteira == "s" ) {
        mostra("Parabéns, você já pode dirigir!");
    } else if (idade < 18) {
        mostra("Você não pode dirigir por conta da sua idade");
    } else if (temCarteira == "N" || temCarteira == "n") {
        mostra("Você não pode dirigir por não ter habilitação");
    }

</script>
1 resposta
solução!

Olá, Athilas, uma maneira de resolver seria utilizar o método toUpperCase():

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

Assim, da mesma forma, a resposta sempre seria reconhecida como letra maiúscula.

Bons estudos!