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

nao sei como resolver

fiz esse codigo porem quando coloco 18 aparece a mensagem e coloco nao aparece que eu posso dirigir e eu queria saber onde tem o problema no meu codigo

<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 sim = ("voce pode dirigir")


 if(idade >= 18) {
    mostra("voce pode dirigir")
 }

if (idade < 18){
    mostra("voce nao pode dirigir")
}
if (idade >= 18) {
    prompt("voce tem carteira de motorista? sim ou nao")
    if (nao){
        mostra("voce nao pode dirigir")
    }
}


</script>
1 resposta
solução!

Olá, Laís! Tudo bem?

Vamos rever as condições if que estamos utilizando.

A primeira diz que se a pessoa tem 18 anos ou mais ela pode dirigir.

 if(idade >= 18) {
    mostra("voce pode dirigir")
 }

A segunda diz que se a pessoa tem menos de 18 anos ela não pode dirigir.

if (idade < 18){
    mostra("voce nao pode dirigir")
}

O problema está na terceira condição. Veja:

if (idade >= 18) {
    prompt("voce tem carteira de motorista? sim ou nao")
    if (nao){
        mostra("voce nao pode dirigir")
}

Acontece que ela tem a mesma condição (idade >= 18) para que seja executada que a primeira. Mas como o programa segue a ordem escrita, independente do usuário digitar sim ou não na pergunta sobre a carteira de motorista, o que será mostrado na tela será "Você pode dirigir", já que a primeira condição foi respeitada.

Concorda comigo que as condições idade >= 18 e ter carteira ou não devem trabalhar juntas?

Então poderíamos seguir o fluxo:

Fluxograma onde inicia com a pergunta Qual a sua idade. Temos dois caminhos. Um leva para maior de dezoito e outro para menor de dezoito. O menor que dezoito leva para Você não pode dirigir. Já o maior de dezoito leva para a pergunta “Você tem carteira de motorista?”.  Essa pergunta pode ter a resposta sim ou não. O sim leva para Você pode dirigir. O não leva para Você não pode dirigir.Transformando isso em código teríamos:

var idade = parseInt(prompt("Qual é sua idade?"));

if(idade >= 18) {
    var podeDirigir = prompt("voce tem carteira de motorista? sim ou nao")

    if (podeDirigir == "nao"){
        mostra("voce nao pode dirigir")
    }
    else{
        mostra("Você pode dirigir")
    }
 }
else{
    mostra("voce nao pode dirigir")
}

Veja que a condição para qual é sua idade está representada por if(idade >= 18) e pelo último else.

Assim como no fluxograma, temos a pergunta "Você tem carteira de motorista?" dentro da condição da idade ser maior que 18. Ou seja, só irá aparecer quando o usuário tiver dezoito anos ou mais. Caso contrário irá aparecer diretamente o "Você não pode dirigir".

Importante ver também que temos que atribuir da resposta dessa pergunta à uma variável para que dessa forma ela possa ter comparada com o não ou o sim. Além disso o não e o sim devem vir entre aspas para que consiga ser interpretado.

Espero ter conseguido ajudar.

Estou à disposição caso alguma dúvida permaneça.

Abraços!