再帰(さいき)とは、ある関数や処理の中で、自分自身を呼び出すプログラミングの技法のことです。「再帰呼出し」とも呼ばれます。複雑な問題を、より小さな同じ形の問題に分割して解決したいときに非常によく使われます。再帰を使うことで、複雑な繰り返し処理をシンプルで読みやすいコードとして記述することができます。ただし、自分自身を呼び出す処理が無限に続かないよう、処理を終了するための「ベースケース(終了条件)」を必ず記述しなければなりません。これがないと、プログラムが無限ループに陥り、パソコンのメモリを使い果たして強制終了してしまいます。
フォルダの探索や、数学の「階乗(かいじょう)」の計算が代表的です。階乗とは、5から1までの数をすべて掛け合わせる計算です。プログラミングの例として、再帰を使って階乗を求める処理は以下のようになります。