我正在尝试创建一个函数,根据两个变量返回不同的问候语:提供的国家/地区和时间。
如果 time 大于或等于 0 但小于 12,则为早上。如果时间大于或等于 12 但小于 24,则为晚上(因此早上为假)。
如果国家是西班牙或墨西哥,并且“morning”为真,则应打印“buenos dias”,如果国家为西班牙或墨西哥,但“morning”为假(晚上),则应打印“buenos noches”。
当国家/地区是法国时也是如此。
目前西班牙是唯一可以正常工作的国家。
不起作用的示例:
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));
您需要在布尔语句中使用 ( ),如下所示:
if(morning && country === 'Spain'|| country==='Mexico'){
将其变成
if(morning && (country === 'Spain'|| country==='Mexico')){
逻辑将会改变。
你不能只写一长行布尔表达式,你需要表达“IF Morning == true AND (country == 'Spain' OR Country == 'Mexico')”
然后将其应用于其他 if 和 else if 语句,直到完成。