一、方法递归
递归:函数自己调用自己,有一个趋近于终止的条件。需要想递归公式。
每次递归都需要开辟一块内存。
递归的应用:如求N的阶乘
public static int fac(int n){
if(n == 1){
return 1;
}
return n * fac(n-1);
递归求3的阶乘的流程如下:
二、数组的定义和使用
1.数组的定义
数组:一组连续的空间,存放的是一组相同数据类型的数据。
数据的静态初始化:如:
int[] a = {12,2,7,4,9};
数组的动态初始化:有两种方式,如:
int[] arr1 = new int[10];
int[] arr2 = new int[]{1,2,3};
2.数组的使用
求数组的长度 数组名.length
通过[ ]按下标取数组元素使用,注意下标从0开始
使用[ ]既能读取数据,也能修改数据
当不想给数组赋值时,赋null,代表这个引用不指向任何一个对象。
打印数组内容
1.for循环打印
int[] a = {1,2,3,4,5};
for(int i = 0;i < a.length;i++){
System.out.println(a[i]);
}
2.for each循环打印(增强for循环)
for (:) {
语句块;
}
冒号左边是数组当中每个元素类型的变量,冒号右边是数组名
相当于把每个元素都赋值给val并打印
int[] a = {1,2,3,4,5};
for (int val: a) {
System.out.println(val);
}
3.使用操作数组的工具类Arrays打印
这种方式会以字符串形式输出
int[] a = {1,2,3,4,5};
String ret = Arrays.toString(a);
System.out.println(ret);
Arrays的应用
Arrays是操作数组的工具类
几个常见的应用:
Arrays.sort(a);//对数组的排序
Arrays.fill(a,0,6,99);//对数组的填充,从小标0到下标6填充99
Arrays.fill(a,99);//对数组的填充,全部填充99