26.1.5.9 再帰メソッド

高さ0の三角形に対応するには,kの値が0かどうかを if 形式で判断します. プログラム全体を示します.

class Recursion{
 public static void main(String argv[ ]){
    triangle(10);
 }
 static void triangle(int k){
     int i;
     if(k>0){
       triangle(k-1);
       for(i=1; i<=k; i=i+1)
           System.out.print('*');
       System.out.println();
     }
 }
}

fileRecursion.java

以前に見た二重のforによるプログラムと比べて見て下さい.どちらがわかりやすいかは場合によりますが,再帰による方法は思考方法の転換を要求しているような気がしませんか?

プログラムRecursionのように,再帰の本体(ifの本体)の最初または最後で1回だけ「再帰呼出し」をしている場合は,簡単に反復に書き直すことができるので,あまり有難味が感じられないかも知れません.もう少し「味のある」再帰の例を見てみましょう.