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