-1
Eloquent Javascriptの第2章の2番目のエクササイズでは、n
のように50
のような0を返してtrueを返すことはできません。Eloquent Javascriptでの再帰エクササイズ
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);
}
console.log(isEven(50));
// → true
console.log(isEven(75));
// → false
console.log(isEven(-1));
// → false
私は、コンソールでこれを入力した場合:
>var x = 50;
>50 == 0;
>false
それはfalseを返します。どうしてこれなの?私はネイティブ英語の講師ではないので、JSコードで何かを読んでいないのでしょうか?
これは明らかに間違っていますので、注意してください。次のものを見てください。 '50 == 1'も偽ですので、スキップしてください。 '50 <0'も偽であるので、最後に' return isEven(n-2) 'を実行します.48を使って関数を再実行します。46,44 ... 4,2,0で繰り返します。 '0 == 0'が真です。 –
デバッガのコードを参照してください。 –
もちろん、 'return n%2 == 0'を代わりに使うことができます... –