黑马程序员技术交流社区
标题:
关于高级for循环的一个问题
[打印本页]
作者:
覃宏海
时间:
2012-9-15 11:45
标题:
关于高级for循环的一个问题
本帖最后由 覃宏海 于 2012-9-15 12:09 编辑
毕老师在讲到File的删除文件时用的for循环,同时也说可以用高级for循环来写,所以我就试用了高级for循环,但是出现了问题。
然后我回去看了高级for循环的视频,说高级for循环不能操作,只能遍历。哪么这道题怎么用高级for循环来写呢?
public static void removeDir(File dir){
File[] files = dir.listFiles();
for(File x : files){
if(files[x].isDirectory())
removeDir(files[x]);[/color
]------------------------------------->当用高级for的时候这2个方就出问题了
else
files[x].
delete();--------------------------------------->求高手帮忙 用高级for循环应该怎么写?或者我的代码写错了?
}
dir.delete();
}
public static void removeDir1(File dir){
File[] files = dir.listFiles();
for(int x=0;x<files[x].length;x++){---------------------------------->
这里是普通for循环
if(files[x].isDirectory())
removeDir1(files[x]);
else
files[x].delete();
}
dir.delete();
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
刚才对比了视频,发现我自己的代码写错了,已做修改,但问题还是没有解决
作者:
马睿
时间:
2012-9-15 12:03
public static void removeDir(File dir){
File[] files = dir.listFiles();
for(File x : files){
if(files[x].isDirectory())
removeDir(files[x]);------------------------------------->当用高级for的时候这2个方就出问题了
/*removeDir(files[x]) 改成removeDir(x) 因为 removeDir 传入的是file类,x 本身就是file类,不是索引*/
else
files[x].delete();--------------------------------------->求高手帮忙 用高级for循环应该怎么写?或者我的代码写错了?
/*同样的 x.delete()*/
}
dir.delete();
}
public static void removeDir1(File dir){
File[] files = dir.listFiles();
for(int x=0;x<files[x].length;x++){---------------------------------->这里是普通for循环
if(files[x].isDirectory())
removeDir1(files[x]);
else
files[x].delete();
}
dir.delete();
}
作者:
覃宏海
时间:
2012-9-15 12:09
马睿 发表于 2012-9-15 12:03
public static void removeDir(File dir){
File[] files = dir.listFiles();
...
谢了,看来我对高级for的理解错误了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2