[递归]
1、 在函数自身内部,调用函数本身的方式,称为递归。
2、 注意: 递归包括递进去、归出来两步。
首先,依次执行【函数调自身语句】上半部分的代码,直到最里层。 {递进去}
然后,再从最里层开始,依次执行【函数调自身语句】下半部分的代码。 {归出来}
3、 递归必须通过合适的语句,及时的跳出。 否则,容易造成死循环。
public static int num=0;//2
public static voidtest(){
System.out.println("这是一个函数");
num++;if(num<=2){
test();//if()不成立不再调用自己
}//先执行三次
System.out.println("hahah");//执行完num大于2,hahah在执行之前的三次
}//test类
test();
结果:
练习:5的阶乘
方法1:
/*** 用递归实现5的!*/
static int jie=1;public static long jiecheng(intn){
jie*=n;
n--;if(n>=1){
jiecheng(5);
}returnjie;
}//Test类:
System.out.println(jiecheng(5));
方法2:
public static int test(int number){//1
if(number == 1){return 1;
}else{return number * test(number - 1);
}
}//Test类:
System.out.println(test(5));
1、[File类]
(1) 作用: 用于对磁盘文件进行操作。 删除、创建等。
(2) 三种常用的构造函数:
① File file1 = new File("F:\\test");
直接传入一个路径,拿到一个文件或者是文件夹。
② File file2 = new File("F:\\test","test.txt");
第一个参数传入父路径、 第二个参数传入子路径或者文件。
③ File file3 = new File(file1,"test.txt");
第一个参数传入一个父路径的file对象, 第二个参数传入子路径或者文件。
(3) 路径的表示:
文件夹的分隔,可以使用"/"(通常用于Linux系统,Windows也适用)
也可以使用"\\"(通常用于Windows),注意一个\需要进行转义。
(4)方法:
1.检测文件是否可读。
System.out.println(file1.canRead());
2.检测文件是否可写。
System.out.println(file2.canWrite());
3. 比较两个对象是否相等。
System.out.println(file2.equals(file3));
4. 检测文件是否存在。
System.out.println(file1.exists());
5. 取到文件的绝对路径
System.out.println(file1.getAbsolutePath());
6. 取到文件名或者文件夹名
System.out.println(file2.getName());
7. 取到当前文件或文件夹的父路径
System.out.println(file1.getParent());
8. 检测当前文件是否是绝对路径
System.out.println(file1.isAbsolute());
9. 检测当前路径是否是目录
System.out.println(file2.isDirectory());
10. 检测当前路径是否是文件
System.out.println(file1.isFile());
11. 删除文件: 删除成功返回true,删除失败返回false
如果删除的是文件夹,则只能删除空文件夹,否则删除失败!
System.out.println(file1.delete());
12.创建一个新文件。 创建失败返回false
try{
System.out.println(file3.createNewFile());
}catch(IOException e) {//TODO Auto-generated catch block
e.printStackTrace();
}
13. 创建一个文件夹。只有当文件夹不存在时,才能创建成功。
①mkdir: 只能创建一层目录,如