/*
递归:函数调用函数自身的表现形式(编程手法)
注意:1.限定条件;2.递归次数,避免内存溢出
需求:1.列出指定目录下的所有文件和文件夹,包含子目录中的内容(层级显示)。
2.模拟十进制转二进制的运算。
3.模拟指定区间整数的加和运算。
*/
package file;
import java.io.*;
class Recursion
{
public static void main(String[] args)
{
File dir = new File("D:\\java_work\\PACKAGE\\");
allFiles(dir,0);
//toBin(128);
//sop(getSum(1,10000));
}
public static String getLevel(int level)
{
StringBuilder sb = new StringBuilder();
for (int x = 0; x<level; x++)
{
sb.insert(0," ");
}
sb.append("|---");
return sb.toString();
}
public static void allFiles(File dir, int level)
{
System.out.println(getLevel(level)+dir);
level++;
File[] f = dir.listFiles();
for (int x = 0; x<f.length; x++)
{
if(f[x].exists())
{
if(f[x].isDirectory())
allFiles(f[x],level);
else
System.out.println(getLevel(level)+f[x]);
}
}
}
public static void toBin(int num)
{
if(num>0)
toBin(num/2);
System.out.print(num%2);
}
public static int getSum(int x, int y)
{
if(x==y)
return x;
return y+getSum(x,y-1);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
|
|