学习记录之java语言基础
循环结构
for结构:应用率最高,与次数相关的循环
语法:
for(要素1;要素2;要素3){
语句块/循环体--------------反复执行的代码 4
}
三种循环结构如何选择
先看循环是否与次数相关;
若相关直接使用for循环
若无关,先判断要素要素1余要素3是否相同:
若相同------使用 do...while
若不同------使用while
嵌套循环:
循环中套循环,一般多行多列时使用,常常外层控制行,内层控制列
执行规则,外层循环走一次,内层循环走全部
建议:嵌套的层数越少越好,能一层就不用两层,break关键字只能跳出当前一层循环
数组:
是一种数据类型(引用类型)
相同数据类型元素的集合
定义:声明整型数组arr包含10个元素,每个元素都是int型,默认值为0;
访问:访问的是数组中的元素:通过(数组名.length)获取数组的长度(元素个数)
通过下标/索引来访问数组中的元素,下标从0开始,最大到数组长度-1;
遍历/迭代:从头到尾挨个走一遍
ArrayIndexOutOfBoundsException:数组下标越界异常
复制:System.arratcopy(a,1,b,0,4)
//a:源数组
//1:源数组的起始下标
//b:目标数组
//0:目标数组的起始下标
//4:要复制的元素个数
数组扩容: System.Arrays.copyOf(a,a.length+1)
注:数组的扩容和缩容其本质都是对数组的复制,而不是在原数组上修改
排序:Arrays.sort(arr)默认是对arr数组进行升序排序
方法: 函数、过程
封装一段特定的业务逻辑功能
尽可能独立,一个方法只干一件事
方法可以被反复多次调用
可以减少代码重复,有利于代码维护
何时用:假设有一个功能,在很多地方都得使用,就将功能封装到一个方法中
方法的定义
无参无返回值
public static void say(){
System.out.println("大家好,我叫张三,今年18岁了");
}
有参无返回值
public static void sayHi(String name){ //形参
System.out.println("大家好,我叫"+name+",今年38岁了");
}
有参有返回值
public static int plus(int num1,int num2){
int num = num1+num2;
return num; //返回的是num里面的那个数
//return num1+num2; //返回的是num1与num2的和
}
无参有返回值
public static int[] testArray(){
int[] arr = new int[10];
for(int i=0;i<arr.length;i++){
arr[i] = (int)(Math.random()*100);
}
return arr;
}
方法的调用:
无返回值:方法名(有参传参);
public class MethodDemo {
public static void main(String[] args) {
say(); //调用say()方法
//sayHi(); //编译错误,有参则必须传参
//sayHi(250); //编译错误,参数类型必须匹配
sayHi("zhangsan"); //String name="zhangsan" //实参
sayHi("lisi"); //String name="lisi" //实参
sayHi("wangwu"); //String name="wangwu" //实参
sayHello("zhangsan",25); //实参 String name="zhangsan",int age=25
sayHello("lisi",24); //实参
}
}
有返回值:数据类型 变量 = 方法名(有参传参);
public class MethodDemo {
public static void main(String[] args) {
double a = getNum(); //getNum()的值就是return后的那个数
System.out.println(a); //8.88,模拟对返回值的后续操作
int b = plus(5,6); //plus(5,6)的值就是return后的那个数
System.out.println(b); //11,模拟对返回值的后续操作
int m=5,n=6;
int c = plus(m,n); //传递的是m和n里面的数
System.out.println(c); //11,模拟对返回值的后续操作
int[] d = testArray();
System.out.println("长度为:"+d.length); //10,模拟对返回值的后续操作
for(int i=0;i<d.length;i++){ //模拟对返回值的后续操作
System.out.println(d[i]);
}
}
}
return:
return值;1.结束方法的执行 2.返回结果给调用方
return; 1.结束方法的执行