所以基本上我刚刚开始学习JS并进行了一些练习,基本上是一个函数来检查数字是否是不使用模运算。当我完成它时,我只是想比较我的答案,我真的不知道它是如何工作的。
function isEven(n) {
if (n == 0)
return true;
else if (n == 1)
return false;
else if (n < 0)
return isEven(-n);
else
return isEven(n - 2);
}
我不确定部分(n-2)如何工作它是否以某种方式将数字放在一个循环中并且基本上n- = 2直到数字变为1或0?
答案 0 :(得分:2)
让我们来看看运行此功能时幕后发生的事情:
isEven(8)
// isEven(8) Is 8 even?
// isEven(6) Is 6 even?
// isEven(4) Is 4 even?
// isEven(2) Is 2 even?
// isEven(0) Is 0 even? --> Yes, the function immediately returns true
// so I know the one at the top, 8, is even
等等。对于任何偶数,它最终会变为0.对于任何奇数,它最终会变为1。
答案 1 :(得分:1)
如果数字为负数,则该函数将其设置为正数并再次针对正值运行,如果它是&gt; 1,它将再次运行,直到数字为1或0,每次迭代时将数字减少2。它被称为递归。
答案 2 :(得分:0)
当n <0时,它在函数中的n之前放置一个减号并再次运行它。如果是,那么再次调用该函数但是n减少2.这一直运行直到你得到真或假。