一.for的嵌套循环
-
嵌套循环:
1)循环中套循环,常常多行多列时使用,外层控制行,内层控制列
2)执行规则:外层循环走一次,内层循环走所有次
3)嵌套层数越少越好,能用一层就不用两层,能用两层就不用三层
4)break默认只能跳出当前一层循环
5)continue:跳过循环体中剩余语句而进入下一次循环
2.经典案例:99乘法表
for(int num=1;num<=9;num++){ //控制行
for(int i=1;i<=num;i++){ //控制列
System.out.print(i+"*"+num+"="+i*num+"\t");//\t:水平制表位,固定占8位
}
System.out.println(); //换行
}
二.数组
1.定义:是一种引用数据类型,相同数据类型元素的集合。
2.语法
声明一个数组
//声明整型数组a,包含5个元素,每个元素都是int类型,默认值为0
int[] a = new int[5];
//声明浮点型数组b,包含5个元素,每个元素都是double类型,默认值为0.0
double[] b = new double[5];
//声明布尔型数组c,包含5个元素,每个元素都是boolean类型,默认值为false
boolean[] c = new boolean[5];
byte,short,int,long,char-------------0
float,double-------------------------0.0
boolean------------------------------false
初始化
int[] arr1 = new int[3]; //0,0,0
int[] arr2 = {1,2,3}; //1,2,3
int[] arr3 = new int[]{1,2,3}; //1,2,3
int[] arr4;
arr4 = new int[]{1,2,3};
3. 访问数组
1)通过(数组名.length)可以获取数组的长度(元素个数)
2)通过下标/索引来访问元素,下标从0开始,最大到(数组的长度-1)
4.数组的遍历
int[] arr = new int[10];
for(int i=0;i<arr.length;i++){ //遍历arr数组
System.out.println(arr[i]); //输出每个元素的值
}
5.数组的复制
1.System.arraycopy()方式
int[] a = {1,2,3,4,5};
int[] b = new int[6]; //0,0,0,0,0,0
System.arraycopy(a,1,b,0,4); //优点:灵活性好
//a:源数组
//1:源数组的起始下标
//b:目标数组
//0:目标数组的起始下标
//4:要复制的元素个数
2.Arrays.copyOf()方式
a.需要import Java.util.Arrays;
b.int[] arr1=Arrays.copyOf(arr2,长度)
int[] a = {1,2,3,4,5};
int[] b = Arrays.copyOf(a,6); //灵活性差
//a:源数组
//b:目标数组
//6:目标数组的长度
// --若目标数组长度>源数组长度,则末尾补默认值
// --若目标数组长度<源数组长度,则将末尾的截掉
可以用来进行数组的扩容(创建了一个新的数组,并将数据复制了进去)
6.排序
需要import Java.util.Arrays;
语法
Arrays.sort(arr);//对数据进行升序排列
三.方法
1.方法的作用:用于封装一段特定的业务逻辑功能(尽可能独立,一个方法只干一件事 )
2.优点
1)可以提高代码的复用性。
2)可以提高代码的可维护性。
3.方法是程序中最小的执行单元。
4.方法的定义:五要素
修饰词 返回值类型 方法名(参数列表){
方法体
}
方法的签名:方法名+参数列表
形参:全程形式参数,是指方法定义中的参数
实参: 全程实际参数,是指方法调用中的参数
5.方法的重载(overloading)
a.发生在同一类中,方法名相同,参数列表不同(重载与返回值类型,参数名称无关)
b.编译器在编译时会根据方法的签名自动绑定方法
public static void a(){}
public static void a(String name){}
public static void a(String name,int age){}