私はCodeAcademy.comでJavascriptを学習していますが、私は正しい答えを見つけたようですが、運動の質問を理解するのが難しいです。JavaScriptの再帰と戻り
コードは、誰かが何かを購入したときにどれだけの変更を返すべきかを理解するのに役立つように設計されています。それは数を取り、返すべき四分の一とペニーの数を計算します。
を•コードストップが、それはライン11に遭遇した最初の時間を実行していない必要があります。ここでは
は、私は理解していない何ですか?そうでない場合は、どうしてですか?
•11行目に入ったときにコードの実行が停止すると、10行目以降にコードを置くことができます。なぜなら、答えが出る前に3回実行されるからです。私はこれが事実であることを発見したので、コードがどのように機能していたかについて私の理解に疑問を呈しました!私は、10行目の後に行quarters += 1;
を追加し、それは必ずしもそうではありません
var change = 0;
var quarters = 0;
function howManyQuarters(howMuchMoney) {
if (howMuchMoney < 0.25) {
change = howMuchMoney;
return 0;
}
else {
quarters += 1;
howManyQuarters(howMuchMoney-0.25);
return quarters; // << line 11
}
}
change = 0.99;
console.log ("Pay out " + howManyQuarters(change) + " quarters");
console.log ("And you'll have " + change * 100 + " pennies left over");
howManyQuarte howManyQuerters(.99-.25) - > howManyQuarters(.74-.25)... 10行目では、関数は自身を呼び出しますが、値は小さくなります。これは、4行目の条件が真になるまで繰り返され、すべてがスタックに戻ります。 1つのエクササイズは、あなたがリターン0になるまでスタック全体をトレースし、それからそれをトレースすることです。 – jmort253
コードは11行目で停止し、関数howManyQuartersが値 –
を返します。私が理解していないこと:もし10行目と11行目の間に再度四分の一+ = 1を加えれば、それは6の答えを与えるでしょう。なぜそれが別の3四半期を追加するのだろうか?私はそれがもう1つだけ追加すると思った? – inperspective