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

questão sera que posso Dirigir

abri o código e digitar 18 /S.. ele exibe a mensagem Não pode dirigir.. não consegui encontrar o erro. alguem pode me ajudar

8 respostas

Consegue, postar seu código?

solução!

insira seu código aqui

<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? Responsa S ou N");

    if( idade >= 18 && temCarteira == "S") {
        mostra("Pode dirigir");
    } else {
        mostra("Não pode dirigir");
    }
</script>

Aparentemente está ok (atende o exercício proposto)! O que pode estar havendo, é para a pergunta "Tem carteira? Responda S ou N" você estar entrando com "s" (minúsculo).

Tente rodar esse aqui, onde você pode responder com "S" ou "s".

<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>

Eu realizei o exercício, e quando digito o "S" diferente do que esta na variável o programa retorna false , tudo indica que o javaScript é case sensitive (Case-sensitive é um anglicismo [nota 1] que se refere a um tipo de análise tipográfica da informática. Em língua portuguesa, significa algo como "sensível à caixa das letras" ou "sensível a maiúsculas e minúsculas") Fonte Wikipedia.

Ou seja tem que digitar como esta declarado na variável, se declarou "S" quando for digitar no prompt digite "S" e caso tenha declaro minusculo "s" digite no prompt "s" .

Eduardo, na verdade podemos chegar a essa conclusão para nomes das variáveis, funções e etc...

No caso o que estamos comparando é o valor de uma variável. Realmente "s" não é igual a "S" e vice-versa.

Mas a boa notícia é que podemos tratar essas coisas com as funções mágicas que aprendemos durante esse curso.

<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.toLowerCase() == "s") {
        mostra("Pode dirigir");
    } else {
        mostra("Não pode dirigir");
    }
</script>

Com a função .toLowerCase() , mesmo que o usuário digitar "S" (maiúsculo), o valor será convertido para minúsculo, que é exatamente o que estamos esperando na condição if.