3
respostas

o Segundo if apresenta um bug.

Se o comprador tiver idade menor que 18, estiver acompanhado e tiver passagem comprada ele não poderá embarcar, pois a seguinte condição não permitirá:

if(idadeComprador >= 18 && temPassagemComprada)

O correto seria:

if(idadeComprador >= 18 || estaAcompanhada == true && temPassagemComprada)

Segue o código completo:

console.log(`Trabalhando com condicionais`);
const listaDeDestinos = new Array(
    `Salvador`,
    `São Paulo`,
    `Rio de Janeiro`
);

const idadeComprador = 17;
const estaAcompanhada = true;
const temPassagemComprada = true;

//.push adiciona um item na lista
listaDeDestinos.push(`Fortaleza`);

console.log(`Destinos possíveis`)
console.log(listaDeDestinos);

if (idadeComprador >= 18 || estaAcompanhada == true) {
    console.log("Passagem comprada com sucesso!");
    listaDeDestinos.splice(3, 1); //Removendo a compra
} else {
    console.log(`Não é maior de idade e não podemos vender.`);
}

console.log("Embarque: \n\n")
if(idadeComprador >= 18 || estaAcompanhada == true && temPassagemComprada == true){
    console.log("Boa Viagem!");
}else{
    console.log("Você não pode embarcar!");
    }


console.log(listaDeDestinos);
3 respostas

Fala ai William, tudo bem? Muito bem observado, realmente tem uma falha ai mesmo.

Só uma dica, quando a gente tem essas condições com OR (OU) é muito bom utilizar parenteses para agrupá-lo, ficando:

if((idadeComprador >= 18 || estaAcompanhada == true) && temPassagemComprada) {}

E no caso nem precisaria verificar se == true, poderia fazer assim:

if((idadeComprador >= 18 || estaAcompanhada) && temPassagemComprada) {}

Como está dentro de um if só vai entrar nele caso seja true.

Espero ter ajudado.

Obrigado pela dica Matheus!

Magina Willian, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.