我应该得到一个可被2整除的数字,而我正在这样做。我不确定为什么我的代码不起作用。我在学习javascript的课程中这样做。我得到的错误是:
哎呀,再试一次。当number = 2时,看起来你的函数返回false。如果它接收的数字是偶数,检查if / else语句中的代码是否正确返回true。
问题是:
在isEven函数中写一个if / else语句。 它应该返回true;如果它收到的数字可以被2整除。 否则(否则),它应该返回false; 确保返回 - 不要使用console.log()!
我的代码
var isEven = function(number) {
// Your code goes here!
if(4 % 2) {
return true;
} else {
return false;
}
};
我做错了什么?
答案 0 :(得分:9)
试试这个
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));
答案 1 :(得分:3)
在我输入时,其他答案是正确的,但要解释
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 modulo var2。有人建议在ECMAScript的未来版本中获得一个实际的模运算符,不同之处在于模运算符结果将采用除数的符号,而不是被除数。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators
此外,您还在if语句中使用了硬编码4,因此它将始终返回true!函数的参数是数字。
var isEven = function (number) {
// Your code goes here!
if (number % 2 == 0) {
return true;
}
else {
return false;
}
};
答案 2 :(得分:1)
if if语句4%2
提供0
并在if语句中提供false
,这就是为什么它不起作用。
通过
更改if语句if(4%2==0)