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

Minha solução diferenciando MAIÚSCULO de minúsculo

<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" , "s") {
        mostra("Você pode dirigir");
    } else {
        mostra("Você NÃO pode dirigir !!!");
    }
</script>
3 respostas

Oi, Carlos, como vai?

A condição do seu if com essa vírgula está errada. O correto seria utilizar o operador lógico OR (||) para fazer essa verificação de S maiúsculo ou minúsculo.

A condição corrigida ficaria assim:

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

Espero ter ajudado.

Abraços e bons estudos!

Muito obrigado pela resposta Murillo! Agora que testei várias vezes percebi um erro bem esquisito: Se colocar idade menor que 18 e letra "s" minúsculo fala que PODE DIRIGIR. Agora colocando idade menor de 18 mas com "S" maiúsculo fala que NÃO PODE DIRIGIR. E até colocando letras no campo idade e "s" minúsculo fala que PODE DIRIGIR. Ou seja, apenas o "s" minúsculo define o resultado, não considera o campo idade!

Uma outra consulta: esse operador lógico que você falou eu não conhecia, onde que tem informação desses comandos e outros do tipo? Tem alguma biblioteca ou cosa assim para ver eles, funções, variáveis etc.?

<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("Você pode dirigir");
    }


    else {
        mostra("Você NÃO pode dirigir !!!");
    }




</script>
solução!

Acho que descobri o problema!!!

if( idade >= 18 && temCarteira == "S" || temCarteira == "s") {
        mostra("Você pode dirigir");

Aqui estou falando que, se a variável idade e a variável temCarteira cumprem os requisitos (>=18 e "S" maiúsculo), então executa a ação. Ou... se apenas a variável temCarteira cumpre o requisito = "s" minúsculo (na segunda parte, após o operador lógico OR). Então é suficiente com que a var temCarteira cumpra o requisito (= "s") para executar, por isso que não considera o valor colocado no campo idade, pode ser letra, símbolo, tanto faz, apenas considera a var temCarteira == "s"

Então corrigido ficaria assim:

if(idade >= 18 && temCarteira == "S" || idade >=18 && temCarteira == "s") {
        mostra("Você pode dirigir");