可能重複:
Can every recursion be converted into iteration?例子只能是遞歸
是否有其中一個必須使用遞歸的問題,有沒有辦法做到這一點反覆?例如刪除子文件夾內的文件。
public static boolean deleteFile(String sFilePath)
{
File oFile = new File(sFilePath);
if(oFile.isDirectory())
{
File[] aFiles = oFile.listFiles();
for(File oFileCur: aFiles)
{
deleteFile(oFileCur.getAbsolutePath());
}
}
return oFile.delete();
}
,我們必須手之前知道文件夾的許多水平如何,實際上那裏,如果我們引入一個新的子文件,我們將不得不改變我想不出的一個以上的迭代版本代碼。是否有可能以這種方式製作上述代碼的迭代版本,以便將來不需要更改代碼?
取決於是否要執行什麼樣的提問* *說(「刪除所有文件」),或者是提問者的代碼*不*(「刪除所有文件和目錄」)。 – 2011-04-30 09:23:47