我是否错误地使用了 if else 语句,一直输出错误的值

问题描述 投票:0回答:1

我正在尝试创建一个函数,根据提供的国家/地区和时间返回不同的问候语。如果 time 大于或等于 0 但小于 12,则为早上。如果时间大于或等于 12 但小于 24,则为晚上(因此早晨为假)。如果国家是痛苦或墨西哥,并且早晨为真,则应打印 buenos diaz,如果国家为西班牙或墨西哥,但早晨为假(晚上),则应打印 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-statement
1个回答
0
投票

您需要在布尔语句中使用 ( ),如下所示:

  if(morning && country === 'Spain'|| country==='Mexico'){

将其变成

  if(morning && (country === 'Spain'|| country==='Mexico')){

逻辑将会改变。

你不能只写一长行布尔表达式,你需要表达“IF Morning == true AND (country == 'Spain' OR Country == 'Mexico')”

© www.soinside.com 2019 - 2024. All rights reserved.