1、循环结构
#for结构:应用率高、与次数相关的循环
语法:for(变量初值1:循环条件2:变量的改变3){
语句块/循环体4}
执行过程:1243243243243243.....2
2、三种循环结构的选择规则
#是否与次数相关
若相关,选择for
若不相关,再看1与3是否相同:
相同:用do....while; 不同用:while
3、break:跳出循环,满足某一条件时,直接结束当前循环
4、continue:跳过循环体中剩余语句而进入下一次循环,当满足某一条件时,在该条件下不执行循环体,而直接进入下一条件,再判断是否要执行循环体。
5、嵌套循环
循环中套循环,常常多行多列同时使用,一般外层控制行,内层控制列;
执行过程:外层循环走一次,内层循环走所有次。
建议:嵌套层数越少越好,最好不超过三层。
break只能跳出当前一层循环
6、数组:指一种数据类型,是相同数据类型元素的集合
#定义数组:int[ ] arr=new int[ n ];
#初始化:int[ ] arr=new int[3]; //0,0,0
int[ ] arr={1,4,7};//1,4,7
int[ ] arr=new int[ ]{1,4,7}; //1,4,7
int[ ] arr;
//arr={1,4,7}; //编译错误
arr=new int[ ]{1,4,7};// 正确
#访问数组元素:
通过(数组名.length)可以获取数组的长度(元素的个数)
例如:arr.length
通过下标/索引来访问数组中的元素,下标从0开始,最大到(数组的长度-1)
int[ ] arr=new int[3];
arr[0]=100; //给第一个元素赋值100
arr[1]=200; //给第二个元素赋值200
arr[2]=300; //给第三个元素赋值300
System.out.println(arr[.length-1]); //输出最后一个元素的值
遍历/迭代:从头至尾挨个走一遍
int[ ] arr=new int[10];
for (int i=0;i<arr.length;i++){//遍历数组arr
arr[i]=(int)(Math.random()*100);//给数组元素赋值0-99的随机数
System.out.println(arr[i]);//输出每个元素的值
}
#注意:作用域相同时,变量不能重名!
\t:水平制表位,固定占8位
#数组的复制:
方法1:System.arraycopy(a,1,b,0,4);
//a:源数组
//1:源数组的起始下标
//b:目标数组
//0:目标数组的起始下标
//4:要复制的元素个数
方法2:int[ ] b=Arrays.copyOf(a,6);
//a:源数组
//b:目标数组
//6:目标数组的长度(元素个数)
// 若目标数组长度大于源数组长度,则末尾补默认值;若目标数组长度小于源数组长度,则将末尾截掉。
#数组排序:
Arrays.sort(arr); //升序排列(从小到大)
7、方法:函数、过程
封装一段特定的业务逻辑功能;
尽可能的独立,一个方法只干一件事;
方法可以被反复调用多次;
减少代码重复,有利于代码复用,有利于代码维护;
#定义方法:五要素
修饰词、返回值类型、方法名(参数列表){
方法体----------具体的业务逻辑功能实现
}
//无参无返回值
public static void say( )
//无参有返回值
public static double getNum( )
//有参无返回值
public static void sayHi(String name, int age)
//有参有返回值
public static int plus(int num1, int num2)
#调用方法
无返回值:方法名(有参传参);
say( );
say("mike",12);
有返回值:数据类型 变量=方法名(有参传参);
double a=getNum( );
int b=plus(5,6);
#return:
return值;:结束方法的执行;返回结果给调用方;用在有返回值的方法中
return;:结束方法的执行;用在无返回值的方法中
补充:
形参:形式参数,定义方法时的参数
实参:实际参数,调用方法时的参数