A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 尹震 中级黑马   /  2012-3-20 18:33  /  1654 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 尹震 于 2012-3-20 20:56 编辑

private static void tree(File treeFile, int level) {       
                             String space = "";
                             for(int i =0 ;i<level;i++){
                                     space + ="   ";
                             }
                File[] files = treeFile.listFiles();               
                for (int i = 0; i < files.length; i++) {
                        System.out.println(space + files.getName());
                        if (files.isDirectory()) {
                                tree(files, level + 1);// 关键处
                        }
                }

        }

为什么“关键处”的 level 改成 ++level 不会跟随当前方法结束而 -1,反之level+1 就可以呢?

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

4 个回复

倒序浏览
不清楚求解
回复 使用道具 举报
首先你先说下你的level这个参数是起什么作用的?   
回复 使用道具 举报
lucky_xingxing 发表于 2012-3-20 19:42
首先你先说下你的level这个参数是起什么作用的?

level 只是代表当前的级别,代码已补全。
回复 使用道具 举报
同学你的代码有错误,Files是数组怎么能调用文件的方法呢,我帮你改了一下,level+1;++level:都能实现功能
public static void main(String[] args) {
                // TODO Auto-generated method stub
                tree(new File("f:\\lianxi"),0);
        }
        private static void tree(File treeFile, int level) {        
        String space = "";
        for(int i =0 ;i<level;i++){
                space+="   ";
        }
        File[] files = treeFile.listFiles();               
        for (int i = 0; i < files.length; i++) {
        System.out.println(space + files[i].getName());
        if (files[i].isDirectory()) {
           tree(files[i], ++level );// 关键处
   }
}

}


点评

支持,个人认为是正解  发表于 2012-3-20 22:13

评分

参与人数 1技术分 +1 收起 理由
房宝彬 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马