1
resposta

E se a idade for menor que zero ou o usuário digitar caracteres inválidos?

Olá! Fiz o código, ele está rodando corretamente, porém, gostaria de saber como resolver alguns problemas: 1) Como posso colocar no código que o usuário utilizou uma idade inválida (como valores menores do que zero ou maiores do que 150)? 2) Como posso colocar no código que o usuário utilizou uma entrada inválida (para evitar que se coloque a idade no lugar do nome, o nome no lugar da idade, ou opções diferentes de S ou N)?

Obrigada!

1 resposta

Olá,Lívia, tudo bem?

Obrigada pelo aguardo da resposta.

Em ambos os casos podemos fazer uma verificação simples com o if/else. Como a idade é a primeira pergunta do programa, podemos colocar a condição e só prosseguir para a segunda pergunta, caso a primeira esteja correta.

Segue o código abaixo como ficaria(coloquei a condição da idade com o exemplo que você citou):

<meta charset="UTF-8">

<script>
  function pulaLinha() {
    document.write("<br>");
  }

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


  // Testar se a idade é válida
  var idade = parseInt(prompt("Qual é sua idade?"));
  if (idade < 0 || idade > 150) {
    mostra("A idade inserida é inválida, insira uma idade entre 0 e 150 anos.");
  } else {

    // Testar se a opção escolhida é válida
    var temCarteira = prompt("Tem carteira? Responda S ou N");
    if (temCarteira != "S" && temCarteira != "N") {
      mostra("A opção escolhida é inválida. Assinale com 'S' ou 'N'.");
    } else {
      // Se tudo for válido
      // Teste original aqui
      if (idade >= 18 && temCarteira == "S") {
        mostra("Pode dirigir");
      } else {
        mostra("Não pode dirigir");
      }
    }
  }


</script>

Espero ter ajudado!

Reforço que estarei a disposição para tirar dúvidas.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!