我目前正在学习Javascript。我看到以下代码让我感到困惑。
代码说明:
从第1行开始,函数isOdd取一个数字n并返回一个布尔值(true或false),说明该数字是否为奇数。
代码
var isOdd = function (n) {
if (n % 2 === 0) {
return false;
} else {
return true;
}
};
var isEven = function(n) {
if(n % 2 === 0) {
return true;
} else {
return false;
}
};
我很困惑。
代码:
n % 2 === 0
我总是将以下内容作为%:
的描述% Is the modulus operator. It returns the remainder of dividing number1 by number2.
这意味着函数isOdd中的if语句返回false是n和2之间的差值是0.但是它意味着n是否可被2整除(偶数)返回false。
我只是看不出它是怎么做的。
在我看来,如果我们取偶数30.将它应用于n%2。我们得到15,这是30除以2的余数.15不等于0,但30是偶数,并且这段代码会被视为奇怪。
有人可以解释一下吗?
答案 0 :(得分:3)
有问题的一行:
if (n % 2 === 0) {
return false;
}
表示“如果将n除以2,则余数为零,则返回false(即n不为奇数)”。
“余数”是当你减去最接近的倍数时遗留的任何东西,所以例如“64%10”是4,因为10的最接近的倍数是60,留下4。
以你的例子换句话说,30/2是15,30%2是零(即30/2之后遗留下来的东西)。以下是关于remainder分割后的更多信息。
答案 1 :(得分:1)
您感到困惑Quotient和Remainder。 当您将30除以2时,整数商为15,余数为0.您还可以通过将整数除以除数并从除数中减去它来计算余数。所以对于这个除法,余数是30(被除数) - 15(商)* 2(除数)= 0.
答案 2 :(得分:0)
如果n可以除以2,则意味着它是偶数 - >
这意味着它不奇怪 - >
isOdd是假的