再帰での カウントアップとカウントダウン

カウントダウンの場合は、開始する数字を渡して最初の関数を呼び、
0で終了することにしておくと、その渡した数がループの回数となる。

      count down の場合:
            回数 = START
    <==================
   0                   START
   +----------------------------------------------
                            START                END
                            ====================>
                            回数 = END-START
                                     count up の場合:

一方、カウントアップの場合、開始と終了の2つの数値を渡す必要がある。
若干ややこしいので、再帰を使ったプログラミングではあまり好まれない。

プログラム(の枠組み)例1

プログラム1
終了時の値(上の図では END)が決まっていれば、
図のようなプログラムでいい。

プログラム(の枠組み)例2

プログラム1
終了時の値が決まっていなければ、それを引数で渡すようにするといい。
例では第二引数で渡しており、第二引数は値を変化させずそのまま次に受け渡している。