なんだかGoodVibes

日々の勉強メモです。

再帰呼出しで桁の合計を求めてみる

再帰呼び出しって何?ってよくなるのでメモ。
再帰呼び出しとはあるメソッドのなかで自分自身を呼び出すとのこと。

イメージしにくいので、例としてある整数の桁の合計を求める処理を書いてみます。
以下のような再帰呼び出しで求めることができます。

        public int GetTotalKetasu(int num, int total)
        {
            if (num <= 0)
            {
                return total;
            }
            else
            {
                total = total + num % 10;
                num = num / 10;
                return GetTotalKetasu(num, total);
            }
        }

123の桁数の合計を求めるとき、
1. GetTotalKetasu(123, 0)
2. GetTotalKetasu(12, 3)
3. GetTotalKetasu(1, 5)
4. GetTotalKetasu(0, 6)
5. num<= 0 となり結果の「6」が返ってくる

のような動きになります。
書き出すとなるほど!となるのですが
頭だけで考えていると混乱してしまいます…。

ちなみに、再帰の終了条件を記載しないと
無限に呼び出してしまうことになるのでご注意を。