再帰関数のしくみを理解する
タイトルが説明するように、私は非常に基本的なプログラミングの質問があります。すべての(非常に賢い)「再帰を理解するには、最初に再帰を理解する必要があります」を除外します。さまざまなオンラインスレッドからの返信まだ十分に理解できていません。 わからないことがわからない場合は、間違った質問をしたり、間違った質問をしたりする傾向があることを理解している。私にとって再帰的な電球をオンにするのに役立つ少しの知識! ここに関数があります(構文はSwiftで書かれています): func sumInts(a: Int, b: Int) -> Int { if (a > b) { return 0 } else { return a + sumInts(a: a + 1, b: b) } } 引数として2と5を使用します。 println(sumInts(a: 2, b: 5)) 答えは明らかに14です。しかし、その値がどのようにして達成されるかははっきりしません。 これらは私の2つのハングアップです: この関数は、条件が満たされるまで再帰的に呼び出されます。その条件はa> bです。この条件が満たされた場合は、0を返します。一見すると、戻り値が0であることが予想されますが、これは明らかに正しくありません。 各反復で「a」の値を出力すると、2、3、4、5と予想される値が得られます(この時点で、5 + 1> bは最初の条件を満たす:a> b)。 14の値がどのように達成されるかを確認します。 私の最初の考えは、次のようなものが魔法のように起こっているということです。 var answer …