سلام. لطف کنید به کد زیر توجه کنید:
import java.io.File;
public class Main {
	public static void main(String[] args) {
		String dir = "E:" + File.separator + "Test" + File.separator + "Files" + File.separator
				+ "non-empty";
		// delete folder recursively
		recursiveDelete(new File(dir));
	}
	public static void recursiveDelete(File file) {
		if (!file.exists()) {
			return;
		}
		// if directory, go inside and call recursively
		if (file.isDirectory()) {
			for (File f : file.listFiles()) {
				// call recursively
				recursiveDelete(f);
				System.out.println("recursively");
			}
		}
		file.delete();
		System.out.println("Deleted file/folder: " + file.getAbsolutePath());
	}
}
	شرط if چک میکند که آیا فایل مورد بررسی دایرکتوری است یا خیر. اگر نباشد از بلاک if خارج شده و کدهای زیر اجرا میشود:
		file.delete();
		System.out.println("Deleted file/folder: " + file.getAbsolutePath());
	اما بعد از اجرای کدهای فوق، برنامه دوباره وارد حلقهی for داخل بدنهی if میشود. بنده متوجه این موضوع نمیشوم. چرا وقتی که از بدنه if و حلقه for خارج شده، دوباره وارد میشود؟