再帰とループの比較をコードで説明する


再帰符号化:
public class Application{public static void main(String[]args){/n任意にintタイプの数int num=Fun(6);System.out.println(num);//SpringApplication.run(Application.class,args);//1+2+3+...+nの和を求め、再帰的な方法でコードを書き出し}public static int Fun(int){if(n==1){return 1;}else { return n + Fun(n - 1); } } } テスト結果:21 Process finished with exit code 0
ループエンコーディング:public class Application{
public static void main(String[] args) {
    //n   1 int    
   int total= Fun(6);
    System.out.println(total);
    //  SpringApplication.run(Application.class, args);
    // 1+2+3+...+n  ,        
}
public static int Fun(int n) {
   int i=0,sum=0;
   while(i<=n){
       sum+=i;
       i++;
   }
   return sum;
}

}試験結果:21 Process finished with exit code 0
まとめ:テキストは(下を見なくてもいい)再帰を説明しました:無限に自分のこの関数を呼び出して、呼び出すたびにいつも1つのキー変数を変更して、このキー変数が境界に達するまで、もう呼び出しません.
再帰とループの違いと関連は同じ点である:(1)いずれも1つの変数の境界(または複数)を制御することによって、複数の変数を変更して必要な値を得るために繰り返し実行される.(2)いずれも予め設計された推定に従ってある値の求めを実現する.(ここでループはプロセスを重視し、結果を再帰的に偏らせることに注意してください)
異なる点:(1)再帰は通常逆思考が多く、「再帰」と「帰」は必ずしも発見しやすいとは限らない(比較的理解しにくい).サイクルは開始条件から終了条件まで,中間サイクル変数を含めて表現する必要がある(比較的簡潔明瞭である).
簡単に言えば、循環で実現できるのは、再帰は一般的に実現できるが、再帰で実現できるのは、循環が必ずしも実現できるとは限らない.一部のテーマ1は循環の終了条件と循環過程だけを重視しているため、往々にしてこの終了条件は表現しにくい(つまり循環では書きにくい).②サイクルの開始条件や終了条件を重視せずにサイクルの回数だけを重視する(このサイクルはさらに手がつけられない).