estou tentando criar uma função que retorne uma saudação diferente dependendo do país e da hora fornecida. se o tempo for maior ou igual a 0, mas menor que 12, será de manhã. E se o tempo for maior ou igual a 12, mas menor que 24, será noite (portanto, manhã é falsa). se o país for dor ou méxico e manhã for verdadeiro, então buenos diaz deve ser impresso, se o país for espanha ou méxico, mas manhã for falsa (noite), então buenos noches deve ser impresso. da mesma forma se o país for a França. atualmente a espanha é a única que funciona corretamente à noite para o méxico imprime buenos diaz e à noite para a frança imprime null.
function sayHello(country, time) {
let greeting;
let morning;
if(time>=0 && time<12){
morning= true;
}else if(time>=12 && time <24){
morning = false;
} else {
morning = null;
};
if(morning && country === 'Spain'|| country==='Mexico'){
greeting = 'buenos dias';
} else if (!morning && country === 'Mexico'|| country==='Spain'){
greeting = 'buenos noches';
} else if(morning && country==='France'){
greeting = 'bon matin'
} else if(!morning && country==='France'){
greeting = 'bon soir'
} else{
greeting = null;
}
// Don't change code below this line
return greeting;
}
console.log(sayHello('Mexico', 15))
Você precisa de ( ) em suas declarações booleanas como esta:
para transformá-lo em
e a lógica mudará.
Você não pode simplesmente escrever uma longa linha de expressões booleanas, você precisa expressar "IF manhã == verdadeiro AND (país == 'Espanha' OR país == 'México')"
Em seguida, aplique isso às outras instruções if e else if até terminar.