package test;
public class CircleMt {
public static int operate(int a ,int b,String operation){
if(operation.equals(\"+\")){
return a+b;
}else if(operation.equals(\"-\")){
return a-b;
}
return 0;
}
public static void main(String[] args) {
System.out.println(operate(operate(operate(1,4,\"+\"),2,\"+\"),3,\"-\"));
}
}
java 为什么递归算法一定要有递归出口
没有出口,会死循环的java中的递归算法。死循环的程序,解决不了问题(程序是为解决问题才编写的。一个死循环的程序几乎不具有价值(51单片机里有死循环有用的,比如用while(1){}控制的led程序一直闪))。但凡能用递归的,不一定能用for,while循环,但for,while循环都能转化为递归。递归在某些情况(不知道循环多少次能找到答案的题目中,特别好使)
从内存角度讲,递归没有出口,它会不停的创造方法,一直占内存,直到内存占满,或溢出,导致系统over了。假设我们只是用递归一直输出一句话,一直调用自己,没有结束,估计只有新手才会这样做。(毫无意义),从算法五大特性来讲,有穷性,确定性,可行性,输入,输出,来说,不符合有穷性(一个算法必须总是在有限次的执行后结束,且每一步都能在有限时间内完成)。
JAVA如何用递归算法打印出d:\\test目录下的所有文件名
File file=new File(\"d:\\tes\");
void listFil(File file)
{
File []files=file.listFiles();
for(File fil:files)
{
if(fil.isDirectory())
listFil();
System.out.println(\"file:\"+fil);
}
}
想要这样的效果:将D盘内所有的文件,文件夹都列出来就是用System.out.println();输出文件名,文件大小打印单个文件,我会,但是遍历打印,我不会~~~~~~哪个高手会?写段简短的代码好不?