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

Como utilizar letra maiúscula e minúscula na resposta

Boa tarde, dentro do que foi proposto fiz uma inclusão, e está tudo ok, mas me incomoda o fato de não funcionar a resposta com "n'' ou "s" minusculo, tentei colocar o operador lógico || entre; if (temCarteira == "S" || "s"), porém não funcionou, como poderia fazer com que funcionasse em ambas alternativas?

Desde já muito obrigado!!

<!DOCTYPE html>
<meta charset = "UTF-8">
<script>
function pulaLinha() {
    document.write("<br>");
    document.write("<br>");
}

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

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

var diferençaDeIdade = 18 - idade ;

if (idade < 18){
    mostra ("Calma ainda faltam "+ diferençaDeIdade + " para você ser habilitado");
}

if (idade >= 18) {
        if (temCarteira == "S"){
            mostra("Parabéns por ser habilitdo!")
        }

            if (temCarteira  == "N"){
             mostra("Essa é sua chance, ligue para nós e vamos te ajudar!! xxxx-xxxx")
            }

}
3 respostas

Voce pode utilizar a propriedade toUpperCase(), na string, assim, qualquer resposta, maiuscula ou minuscula do usuario, ele vai converter para maiscula, e então você faz a verificação com "S" ou "N". if (temCarteira.toUpperCase() == "S") e if (temCarteira.toUpperCase() == "N")

solução!

Olá, Daniel, tudo bem?

Do jeito que você mostrou, a verificação if (temCarteira == "S" || "s") na verdade não funcionará da forma correta! Para o computador, precisamos deixar as verificações de forma bastante explícita, e o que funcionará na verdade é o seguinte código:

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

Veja que precisamos fazer duas comparações com a variável temCarteira, uma de cada lado do operador || ("OU" lógico)!

A verificação if (temCarteira == "S" || "s") não funcionará da forma esperada por questão de como os operadores lógicos funcionam e como o computador avalia as expressões que escrevemos.

Digamos, por exemplo, que a variável temCarteira tem valor "N". A expressão (temCarteira == "S" || "s") será avaliada pelo computador de acordo com o seguinte passo a passo:

  • (temCarteira == "S" || "s")
  • ("N" == "S" || "s")
  • (false || "s")
  • (true)

O operador || resulta em true se pelo menos uma das expressões for verdadeira. E no caso acima, a string "s" é avaliada como true! Então na verdade, não importa o valor de temCarteira, a expressão (temCarteira == "S" || "s") sempre resultará em true.

Você pode entender porque a string "s" é sempre avaliada como true dando uma olhada na documentação sobre valores "Truthy"!

Você também pode ler um pouco mais sobre os operadores lógicos na documentação.

Além disso, a solução do Matheus também é válida!

Espero ter te ajudado! Qualquer dúvida estaremos aqui para responder. Bons estudos! :)

Boa tarde, nossa ambos ajudaram demais, testei as duas formas e foi sucesso total!

Obrigado pelas recomendações de leitura Antônio!