if语句未返回true

if statement not returning true

本文关键字:true 返回 语句 if      更新时间:2023-09-26

我应该得到一个可以被二整除的数字,我正在这样做。我不知道为什么我的代码不起作用。我在学习javascript的课程中这样做。我得到的错误是:

哎呀,再试一次。当数字=2时,函数似乎返回false。如果收到的数字是偶数,请检查if/else语句中的代码是否正确返回true。

问题是:

在isEven函数中编写一个if/else语句。它应该返回true;如果它接收的数字可以被2整除。否则(else),它应该返回false;。请确保返回-不要使用console.log()!

我的代码

var isEven = function(number) {
// Your code goes here!
  if(4 % 2) {
      return true;
  } else {
      return false;
  }
};

我做错了什么?

试试这个

var isEven = function(number) {
  if(number % 2 === 0) {
      return true;
  } else {
      return false;
  }
};
console.log(isEven(4));
console.log(isEven(3));
console.log(isEven(6));

一行更漂亮

var isEven = function(number) {
  return number % 2 === 0;
};
console.log(isEven(4));
console.log(isEven(3));
console.log(isEven(6));

其他答案在我输入时是正确的,但为了解释

var isEven = function(number) {
// Your code goes here!
  if(4 % 2) {
      return true;
  } else {
      return false;
  }
};

%这是模除法算子。所以它返回一个值。模数告诉你除法后剩下的余数。所以4模2返回0,因为没有剩余的东西。因此,为什么您需要对照返回值进行检查

var isEven = function(number) {
// Your code goes here!
  if(4 % 2 == 0) {
      return true;
  } else {
      return false;
  }
};

如果没有余数,它就是一个偶数,因为2把它平分,没有余数。所以3模2返回1,因为2将3除一次,剩下1。

根据下面的评论(似乎它被删除了),当用负数和正数说话时,模数和余数之间似乎有区别,但对于严格意义上的javascript运算符来说,这就是它的定义:

余数运算符返回一个操作数除以第二个操作数后剩下的余数。它总是取被除数的符号,而不是除数。它使用内置的模函数来产生结果,这是var1除以var2的整数余数——例如,var1模var2。有人建议在ECMAScript的未来版本中获得一个实际的模运算符,不同之处在于模运算符的结果将取除数的符号,而不是被除数。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators

此外,您已将4硬编码到if语句中,因此它将始终返回true!函数的参数是数字。

var isEven = function (number) {
    // Your code goes here!
    if (number % 2 == 0) {
        return true;
    }
    else {
        return false;
    }
};

在if语句中,4%2给出0,而在if语句则给出false,这就是它不起作用的原因。

更改if语句

if(4%2==0)