您的位置:首页 > 其它

递归与循环

2016-03-23 17:51 190 查看
递归和迭代都是循环的一种。

递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。

递归变循环的文件扫描列子:

递归:

dealFile(String filePath) {

          // 若是目录, 采用递归的方法遍历子目录     

       File f = new File(path);

        if(f.isDirectory()){

            File[] t = f.listFiles();

            for(int i=0; i< t.length; i++){

                if( t[i].isFile()||f.isDirectory()){

                    //递归

                    dealFile(f.getAbsolutePath());

                }

            }

        }

        else{

          //todo with file

            }

        }

     

    }

循环

  Stack<String> filestack = new Stack<String>();

            File f= null;

          filestack.push(path);

          String tmpFP="";

          while(f !=null ||  !filestack.empty())

          {

              if(f == null){

                  tmpFP = filestack.pop();              

                  f= new File(tmpFP);

              } else{

                  if(f.isDirectory()){

                        File[] t = f.listFiles();

                        for(int i=0; i< t.length; i++){

                            if(t[i].isFile() || t[i].isDirectory()){

                                //入展

                                filestack.push(t[i].getAbsolutePath());                             

                            }

                        }

                        f=null;

                        continue;

                  } else{

                          //todo with file

                   }

                    f = null;

          }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  递归 迭代