Oi Antônio,
Parabéns pela iniciativa de aprimorar seu projeto! 👏
Quanto à lógica para verificar a idade, ela está correta.
O if
e else
estão funcionando como esperado para determinar se a pessoa pode ou não tirar a habilitação.
Sobre a mensagem de erro aparecendo duas vezes, o problema está em como você a está utilizando.
Você está usando um alert
antes de coletar os dados do usuário e outro alert
depois.
O primeiro alert('Erro!Preencha todos os campos');
é executado imediatamente quando o código é carregado, e o segundo alert(mensagemDeErro);
é executado logo em seguida.
Para corrigir isso, você deve exibir a mensagem de erro apenas se o usuário não preencher os campos corretamente.
Uma forma de fazer isso é verificar se os campos estão vazios antes de prosseguir com o resto do código.
alert('Boas vindas ao nosso site!');
let nome = prompt('Qual seu nome');
let idade = parseInt(prompt('Qual é a sua idade'));
if (!nome || isNaN(idade)) {
alert('Erro! Preencha todos os campos!');
} else if (idade >= 18) {
alert(nome + ' pode tirar a habilitação!');
} else {
alert(nome + ' não pode tirar a habilitação!');
}
Neste exemplo, a mensagem de erro só será exibida se o usuário não inserir um nome ou se a idade não for um número válido. 👍
Para saber mais: Interação: alerta, prompt, confirmar
.
Continue praticando e explorando as possibilidades da programação! 💪

Caso este post o tenha ajudado,
marque-o como solucionado ☑️.
Bons Estudos! 🤓