Ir ao conteúdo
  • Cadastre-se

Javascript Como fazer verificação com valores booleanos?


Posts recomendados

//Uma empresa quer verificar se um empregado está qualificado para a aposentadoria ou não. Para
//estar em condições de se aposentar, um dos seguintes requisitos deve ser satisfeito:
//- Ter no mínimo 65 anos de idade.
//- Ter trabalhado no mínimo 30 anos.
//- Ter no mínimo 60 anos e ter trabalhado no mínimo 25 anos.
//Com base nas informações acima, faça um algoritmo que leia: o nome do empregado, o ano
//de seu nascimento e o ano de admissão na empresa.
//O algoritmo deverá escrever a idade e o tempo
//de trabalho do empregado e a mensagem 'Requerer aposentadoria' ou 'Não requerer'.

 

Alguém poderia me ajudar no meu código que está  dando erro
 

 

 

function Calcular() {
    if (document.getElementById('txtNome').value.trim() == '') {
        alert('Campo nome é obrigatório');
        return false;
    }
    if (document.getElementById('txtNome').value.trim().length <= 7) {
        alert('Nome digitado é muito curto');
        return false;

    }
    if (document.getElementById('txtAnoNascimento').value == '') {
        alert('Campo data de nascimento é obrigatório');
        return false;
    }

    if (document.getElementById('txtAnoEmpresa').value == '') {
        alert('Campo do ano da admissão na empresa é obrigatório');
        return false;
    }

    if (document.getElementById('txtAnoAtual').value == '') {
        alert('Campo do ano atual é obrigatório');
        return false;
    }

    let nome;
    let AnoNascimento;
    let AnoAdmissao;
    let AnoAtual;
    let Idade;
    let TempoDeTrabalho;
    let PodeAposentar;

    Idade = AnoAtual - AnoNascimento
    TempoDeTrabalho = AnoAtual - AnoAdmissao

    if (Idade >= 65) {

        PodeAposentar = Verdadeiro

    }
    else if (TempoDeTrabalho >= 30) {
        PodeAposentar = Verdadeiro
    }
    else if (Idade >= 60 && TempoDeTrabalho >= 25) {
        PodeAposentar = Verdadeiro

    }
    else {
        PodeAposentar=Falso
    }

    // obtendo os valores dos campos do formulário
    nome = document.getElementById('txtNome').value;
    AnoNascimento = parseInt(document.getElementById('txtAnoNascimento').value);
    AnoAdmissao = parseInt(document.getElementById('txtAnoEmpresa').value);
    AnoAtual = parseInt(document.getElementById('txtAnoAtual').value);


    Idade = AnoAtual - AnoNascimento
    TempoDeTrabalho = AnoAtual - AnoAdmissao

        //escrever os resultados nos campos

    document.getElementById('txtResultNome').value = nome;
    document.getElementById('txtIdade').value = Idade;
    document.getElementById('txtTempoTrabalho').value = TempoDeTrabalho;
    document.getElementById('txtSituacao').value = TempoDeTrabalho;

    if (PodeAposentar = Verdadeiro) {
        document.write(" APOSENTADORIA")

        PodeAposentar = Verdadeiro

    }
    else {
        document.write("NÃO APOSENTADORIA")

        }
    }

 

 

 


 

Link para o comentário
Compartilhar em outros sites

12 horas atrás, lucassaculsantos disse:

//Uma empresa quer verificar se um empregado está qualificado para a aposentadoria ou não. Para
//estar em condições de se aposentar, um dos seguintes requisitos deve ser satisfeito:
//- Ter no mínimo 65 anos de idade.
//- Ter trabalhado no mínimo 30 anos.
//- Ter no mínimo 60 anos e ter trabalhado no mínimo 25 anos.
//Com base nas informações acima, faça um algoritmo que leia: o nome do empregado, o ano
//de seu nascimento e o ano de admissão na empresa.
//O algoritmo deverá escrever a idade e o tempo
//de trabalho do empregado e a mensagem 'Requerer aposentadoria' ou 'Não requerer'.

 

Alguém poderia me ajudar no meu código que está  dando erro
 

 

 


function Calcular() {
    if (document.getElementById('txtNome').value.trim() == '') {
        alert('Campo nome é obrigatório');
        return false;
    }
    if (document.getElementById('txtNome').value.trim().length <= 7) {
        alert('Nome digitado é muito curto');
        return false;

    }
    if (document.getElementById('txtAnoNascimento').value == '') {
        alert('Campo data de nascimento é obrigatório');
        return false;
    }

    if (document.getElementById('txtAnoEmpresa').value == '') {
        alert('Campo do ano da admissão na empresa é obrigatório');
        return false;
    }

    if (document.getElementById('txtAnoAtual').value == '') {
        alert('Campo do ano atual é obrigatório');
        return false;
    }

    let nome;
    let AnoNascimento;
    let AnoAdmissao;
    let AnoAtual;
    let Idade;
    let TempoDeTrabalho;
    let PodeAposentar;

    Idade = AnoAtual - AnoNascimento
    TempoDeTrabalho = AnoAtual - AnoAdmissao

    if (Idade >= 65) {

        PodeAposentar = Verdadeiro

    }
    else if (TempoDeTrabalho >= 30) {
        PodeAposentar = Verdadeiro
    }
    else if (Idade >= 60 && TempoDeTrabalho >= 25) {
        PodeAposentar = Verdadeiro

    }
    else {
        PodeAposentar=Falso
    }

    // obtendo os valores dos campos do formulário
    nome = document.getElementById('txtNome').value;
    AnoNascimento = parseInt(document.getElementById('txtAnoNascimento').value);
    AnoAdmissao = parseInt(document.getElementById('txtAnoEmpresa').value);
    AnoAtual = parseInt(document.getElementById('txtAnoAtual').value);


    Idade = AnoAtual - AnoNascimento
    TempoDeTrabalho = AnoAtual - AnoAdmissao

        //escrever os resultados nos campos

    document.getElementById('txtResultNome').value = nome;
    document.getElementById('txtIdade').value = Idade;
    document.getElementById('txtTempoTrabalho').value = TempoDeTrabalho;
    document.getElementById('txtSituacao').value = TempoDeTrabalho;

    if (PodeAposentar = Verdadeiro) {
        document.write(" APOSENTADORIA")

        PodeAposentar = Verdadeiro

    }
    else {
        document.write("NÃO APOSENTADORIA")

        }
    }

 

 

 


 

Na parte da lógica do if e else eu não vi nenhum erro. Seria interessante você postar o html para ver se pode ser algum erro no nome dos objetos, porque este sistema usado para pegar os dados dos objetos (inputs) é meio chatinho e qualquer detalhe dá errado.

Link para o comentário
Compartilhar em outros sites

@lucassaculsantos Olá colega.
Como sugestão, organize melhor o seu código. Pegue por exemplo, os dados dos inputs logo no início, armazene em uma variável e use essa variável para tudo ao longo do código todo.


Vou dar um exemplo abaixo, mas a parte com os if´s de consistência vou deixar para você, se não perde a graça:

 

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento sem título</title>
</head>

<body>

<form>
  <p>Nome</p>
  <input type="text" id="txtNome" name="txtNome">
  
  <p>Ano Nascimento</p>
  <input type="number" id="txtAnoNascimento" name="txtAnoNascimento">
  
  <p>Ano Empresa</p>
  <input type="number" id="txtAnoEmpresa" name="txtAnoEmpresa">
  
  <p>Ano Atual</p>
  <input type="number" id="txtAnoAtual" name="txtAnoAtual">
  <br>
  
  <input type="submit" value="Calcular" onclick="calcula()">
</form>

<script>
function calcula() {    
    var ano_nascimento = document.getElementById('txtAnoNascimento').value;
    var ano_admissao   = document.getElementById('txtAnoEmpresa').value;
    var ano_atual      = document.getElementById('txtAnoAtual').value; 
    var nome           = document.getElementById('txtNome').value;
    
    if (nome.trim() == '') {
        alert('Campo nome é obrigatório');
        return false;
    }
    if (nome.trim().length <= 7) {
        alert('Nome digitado é muito curto');
        return false;

    }
    if (ano_nascimento == "") {
        alert('Campo data de nascimento é obrigatório');
        return false;
    }

    if (ano_admissao == "") {
        alert('Campo do ano da admissão na empresa é obrigatório');
        return false;
    }

    if (ano_atual == "") {
        alert('Campo do ano atual é obrigatório');
        return false;
    }    
    
    var idade = parseInt(ano_atual) - parseInt(ano_nascimento);
    var tempo = parseInt(ano_atual) - parseInt(ano_admissao);
        
    alert(idade);
    alert(tempo);
    
    /* Falta fazer os if´s abaixo*/
    
}
</script>


</body>
</html>

 

Abraços colega.

Link para o comentário
Compartilhar em outros sites

Era bom você colocar também o seu código HTML, pra gente vê os types das inputs que você tá usando. No nascimento, você captura um type: date? um number ?  uma string ? 

Se for só o ano de nascimento, então provavelmente é um type 'number'. O que você pode fazer, pra reduzir esse teu código, e não enche-lo de ifs,  seria trabalhar com operadores ternários diretos nas variáveis, já fazendo o papel dos ifs .

Um exemplo, imagina que essas constantes são os valores que você captura das sua inputs pelo o DOM, e que existe um fulano chamado Fiódor Dostoiévsk que quer ver se pode se aposentar ou não ... Ai segue o código


      

const nome = "Fiódor Dostoiévisk"

      const anoDenascimento = 1821;

      const anoCorrente = 2021;

      const tempoDetrabalho = 40;

      let  calcularAno = anoCorrente - anoDenascimento   

      const resposta = 
      calcularAno > 64 ? "Requerer aposentadoria" : "'Não requerer aposentadoria" || tempoDetrabalho > 29 ?"Requerer aposentadoria":
      "Não requerer" || calcularAno > 59 && tempoDetrabalho > 24 ? "Requerer aposentadoria" :"Não requerer aposentadoria"



      console.log(resposta)
     //irá retorna requerer aposentadoria

 

Outra hipótese com o mesmo código.

Já aqui, no caso do "Menino Moço", não irá retornar  a aposentadoria 

const nome = "Menino Moço";

      const anoDenascimento = 2001;

      const anoCorrente = 2021;

      const tempoDetrabalho = 5;


      let  calcularAno = anoCorrent - anoDenascimento   

      const resposta = 
      calcularAno > 64 ? "Requerer aposentadoria" : "Não requerer aposentadoria" || tempoDetrabalho > 29 ? "Requerer aposentadoria":
 "Não requerer aposentadoria" || calcularAno > 59 && tempoDetrabalho > 24 ? "Requerer aposentadoria" : "'Não requerer aposentadoria"

      console.log(resposta)
     //irá retorna não requerer aposentadoria

 

 Notei que em seu código você retornava um false e um true nos resultados das condicionais. 

Você pode fazer isso com esse código também. É só substituir o "Requerer aposentadoria" , por true , e o "Não requerer aposentadoria" , por false

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!