#用いた関数
再帰関数という言葉を知り、その内容を調べていたところ、以下のような関数を見つけました:
PYthon
1def total(n): 2 if n < 1: 3 return 0 4 return n + total(n - 1)
疑いもなく、n に例えば 100 を渡せば 5050 が出力され、1 ~ nまでの総和を出力する関数として正常に動いています。
#質問
再帰関数とは何か、どうして動くのか、といったことは既に他の例を見て理解したのですが、上記コード中の return 0 の箇所について、これは n < 1 となった全ての n (-100, -1000, -10000, ...)に対して 0 を返し続けるというある種の無限ループに陥っているのではないか?という疑問が湧きました(実際は無限ループを回避するためにこのような条件分岐が与えられているとのことですが)。他の再帰関数の実装例でも、0 の代わりに空リスト [] を返すものがあったりなどがありましたが、なぜこれだけで無限ループを回避したことになるのでしょうか?素人質問で恐縮ですが、ご教授お願い申し上げます。
回答4件
あなたの回答
tips
プレビュー