Ir ao conteúdo
  • Cadastre-se

Javascript Condicionais de if como fazer?


Posts recomendados

Meu programa está dando este erro, e não estou conseguindo vislumbrar meu erro. O programa deve através do (if) condicionar a idade dos eleitores para pode votar, 16 anos e 17 anos(facultativo) e acima de 18 anos obrigatório. 

 

 

Erro:

//Deve ter um if validando idade para voto opcional!

 

 

 

 

var idade = 17


if (idade >= 18){
   console.log('Você é obrigado a votar')
}
if (idade == 17){
    console.log('Seu voto é opcional')
 }
 if (idade == 16){
   console.log('Seu voto é opcional')
}

//Erros:
//Deve ter um if validando idade para voto opcional!

 

 

 


 

 

Link para o comentário
Compartilhar em outros sites

Rodei seu codigo no navegador e deu tudo certo  , refiz ele de outra forma .

 

var idade = 1


if (idade >= 18){
   console.log('Você é obrigado a votar')
}
else if(idade == 16 || idade == 17)
{
  console.log('Seu voto e opcional')
}
else{
 console.log('voce nao pode votar')
}

Primeiro vai verificar se a idade e maior ou igual a 18 . Legal idade >= a 18   entao ele cai dentro do if .

Se nao ele testa a idade e igual a 16 ou igual a 17 ? Se for ele cai ali .

Entao depois de tudo como nao foi nenhuma das opções ele cai no else e voce nao pode votar .

Link para o comentário
Compartilhar em outros sites

@WilliamNascimento roda sim! Obrigado! Esqueci de mencionar..O problema é que a questão só pede para utilizar dois (if) e não pode usar o OR ou AND ...ele me deu a variável 17... tem que ser com operadores relacionais básicos.. tentei da maneira abaixo.. mas da o erro em vermelho.... meu erro tá nos menores de 16... como abarcar eles somente com dois (if)

26A50102-0518-4989-BFAA-6BD28609DE96.jpeg

Link para o comentário
Compartilhar em outros sites

5 minutos atrás, SampaoliDexter disse:

@WilliamNascimento roda sim! Obrigado! Esqueci de mencionar..O problema é que a questão só pede para utilizar dois (if) e não pode usar o OR ou AND ...ele me deu a variável 17... tem que ser com operadores relacionais básicos.. tentei da maneira abaixo.. mas da o erro em vermelho.... meu erro tá nos menores de 16... como abarcar eles somente com dois (if)

26A50102-0518-4989-BFAA-6BD28609DE96.jpeg

Nao caso apenas 2 if sem o else ?

Link para o comentário
Compartilhar em outros sites

13 minutos atrás, WilliamNascimento disse:

Nao caso apenas 2 if sem o else ?

Pelo que entendi sim! Sem o else

adicionado 5 minutos depois
5 minutos atrás, SampaoliDexter disse:

Pelo que entendi sim! Sem o else

 

51FEA172-2DD3-4ED8-9397-9985A418B1A4.jpeg

adicionado 8 minutos depois
6 minutos atrás, SampaoliDexter disse:

Pelo que entendi sim! Sem o else

adicionado 5 minutos depois

 

51FEA172-2DD3-4ED8-9397-9985A418B1A4.jpeg

porque mesmo quando faço com OR, AND, 3 (if) ou usando else dá erro ... pois o tema é sobre if e operadores relacionais básicos somente.. quebrando a cuca aqui kkk

Link para o comentário
Compartilhar em outros sites

  • Moderador

@SampaoliDexter Não entendi uma coisa. O exercício pede que faça uma condicional no voto opcional e precisa ter apenas 2 ifs certo?  Mas poderia usar um "else if"  esse seria uma segunda condição com expressão, logo ele não seria considerado um "else" apenas.

 

Dá para fazer desta forma:

var idade = 17;


if (idade >= 18){
   console.log('Você é obrigado a votar')
}else if(idade <= 17){
    console.log('Seu voto é opcional');
}

Basicamente, você precisa testar se é tem 16 ou 17 anos é opcional e acima é obrigatório.

Então se usar o IF como primeira condição de expressão para testar a idade de 18 para cima, senão faz uma nova condição com expressão usando um novo IF para testar se tem 16 ou 17.  

No caso, se colocar 16 ou 17 vai dar que o voto é opcional.  

 

Acredito que esta forma seja a melhor para a resolução deste exercício. Porém não é a única forma..

se fosse uma situação real, eu diria que nesse caso seria melhor usar switch case, se for testar múltiplas idades como por exemplo, se tiver de 0 a 15 não pode votar, se tiver de 16 a 17 é opcional e 18 para cima obrigatório.

Link para o comentário
Compartilhar em outros sites

@Elivaldo Junio Magalhães  No site deles só aceitava desta maneira abaixo...O mais correto é fazer igual a os colegas acima mesmo. 

 

 

 

 

 

var idade = 17

if (idade >=18) {

console.log("Você é obrigado a votar")

}

if (idade >=16) {

console.log("Seu voto é opcional")

}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...
Em 07/07/2020 às 10:24, SampaoliDexter disse:

@DiF O seu e o do colega acima estão certos também. Foi uma confusão do enunciado, consegui resolver com apenas dos (ifs) simples, não aceitava nenhum outro jeito. Obrigado ai!

Você podia me dizer como conseguiu solucionar? Estou a mais de um dia tentando resolver esse exercício, já fiz de todas as maneiras que pensei e continua dando erro.

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois...

@Amanda Laiza Vou te ajudar sem lhe dar a resposta. O jeito que você está fazendo não está correto por uma questão... Quando você executa o if na segunda condição, ele não para a primeira. Ou seja, se a idade for 18, ela é >= 18 validando e ativando a primeira condição, e também é >= 16 validando e ativando a segunda, por isso está dando erro, por que as duas condições estão sendo validadas, e não é isso que o "programa" quer.

 

Você vai ter que criar 3 condições, a primeira maior de 18 está ok. Agora quais as outras duas condições que só serão executadas, sem que o primeiro if seja acionado?  a ideia é você pensar. ^^ Isso se você ja não descobriu.

  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...

@Tch4ik0vsky

 

var idade = 22;

if (idade <= 16) {
  console.log("Seu voto é opcional");
} 

if (idade >= 18) {
  console.log("Você é obrigado a votar");
}

 

Não há outra escolha, teria que inverter um dos operadores condicionais. 

 

Na primeira linha a variável "idade" é declarada e se tem o valor 22;

Depois uma expressão if é acrescida. Se idade for menor ou igual á 16 o bloco de código é executado com o valor "Seu voto é opcional" retornado para o console;

Se for falso rode a proxima expressão if;

A segunda expressão if mudei o operador condicional substituindo o operador "<=" (menor ou igual á) para o ">=" (maior ou igual á);

Se idade for maior ou igual á 18, o bloco de código é executado com o valor "Você é obrigado a votar" retornado no console.

Link para o comentário
Compartilhar em outros sites

Pode dividir?

 

A idade dividida por 16 será igual 1 ou maior se tem valor igual ou maior que 16.

A idade dividida por 18 será igual 1 ou maior se tem valor igual ou maior que 18.

 

Estamos interessando nos casos em que o quociente é 1 == para 16

Estamos interessando nos casos em que o quociente é 1 <= para 18

 

var idade_do_cidadao = 17;

if (1 == ((idade_do_cidadao/16)|0)) {
  console.log("Seu voto é opcional");
} 

if (1 <= ((idade_do_cidadao/18)|0)) {
  console.log("Você é obrigado a votar");
}

 

 

Como ainda estou aprendo, pode ser que tenha codificado algo errado.

:) ] sorry.

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...