循环:反复多次执行一段相同或相似的代码
1.循环三要素:
1)循环变量的初始化
2)循环的条件(以循环变量为基础)
3)循环变量的改变(向着循环的结束变)
循环变量:在整个循环过程中所反复改变的那个数
2.循环结构:
1)while结构:先判断后执行,有可能一次都不执行
2)do…while结构:先执行后判断,至少执行一次
3)for:固定次数循环,应用率最高
break:跳出循环
continue:跳过循环体中剩余语句而进入下一次循环
3.三种循环结构的更佳适用情况:
1)while:”当…”
2)do…while:”直到…”
要素1与要素3相同时首选do…while
3)for:固定次数循环
4.嵌套循环:
1)循环中套循环,一般多行多列时使用,外层控制行,内层控制列
2)执行规则:外层循环走一次,内层循环走所有次
3)建议:嵌套层数越少越好,能一层就不用两层,能两层就不用三层
若业务必须通过三层以上的循环来解决,说明你的设计有问题
4)break只能跳出一层循环
5.程序=算法+数据结构
1)算法:解决问题的步骤/流程(顺序、分支、循环)
2)数据结构:将数据按照某种特定的结构来保存
数怎么存
设计良好的/合理的数据结构会导致好的算法
6.数组:
1)相同数据类型元素的集合
2)是一种数据类型(引用类型)
3)数组的定义:
1
int[] arr = new int[10];
4)数组的初始化:
1
2
3
4
5
6int[] arr = new int[4]; //四个元素 默认值都为0
int[] arr = {1,4,6,8}; //1,4,6,8
int[] arr = new int[]{1,4,6,8}; //1,4,6,8
int[] arr;
arr = {1,4,6,8}; //编译错误,此方式只能声明同时初始化
arr = new int[]{1,4,6,8}; //正确
5)数组的访问:
1
2
3
4
5
6
7
8
9
10
115.1)通过(数组名.length)可以获取数组的长度(元素的个数)
int[] arr = new int[4];
System.out.println(arr.length); //元素个数为4个
5.2)通过下标/索引来访问数组中的元素
下标从0开始,最大到(数组的长度-1)
int[] arr = new int[3];
arr[0] = 100; //给第1个元素赋值为100
arr[1] = 200; //给第2个元素赋值为200
arr[2] = 300; //给第3个元素赋值为300
//arr[3] = 400; //数组下标越界异常
System.out.println(arr[arr.length-1]); //输出最后一个元素的值
6)数组的遍历:
1
2
3
4
5
6
7
8
9
10int[] arr = new int[10];
for(int i=0;i<arr.length;i++){
arr[i] = (int)(Math.random()*100);
}
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
for(int i=arr.length-1;i>=0;i--){
System.out.println(arr[i]);
}
7)数组的复制:
1
2
31)System.arraycopy(a,1,a1,0,4);
2)int[] a1 = Arrays.copyOf(a,6);
a = Arrays.copyOf(a,a.length+1); //数组的扩容
8)数组的排序:
1
1)Arrays.sort(arr);
7.方法:函数、过程
1)封装一段特定的业务逻辑功能
2)尽可能独立,一个方法只干一件事
3)方法可以被反复多次的调用
4)减少代码的重复,有利于代码的维护,有利于团队的协作
5)方法的定义:
修饰词 返回值类型 方法名(参数列表){
方法体
}
6)方法的调用:
1)无返回值: 方法名(有参传参);
2)有返回值: 数据类型 变量 = 方法名(有参传参);
7)return 用法:
1)return; //1)结束方法的执行
2)return 值; //1)结束方法的执行 2)返回结果给调用方
byte:
- byte 数据类型是8位、有符号的,以二进制补码表示的整数;
- 最小值是 -128(-2^7);
- 最大值是 127(2^7-1);
- 默认值是 0;
- byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
short:
- short 数据类型是 16 位、有符号的以二进制补码表示的整数
- 最小值是 -32768(-2^15);
- 最大值是 32767(2^15 - 1);
- Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
- 默认值是 0;
int:
- int 数据类型是32位、有符号的以二进制补码表示的整数;
- 最小值是 -2,147,483,648(-2^31);
- 最大值是 2,147,483,647(2^31 - 1);
- 一般地整型变量默认为 int 类型;
- 默认值是 0 ;
long:
- long 数据类型是 64 位、有符号的以二进制补码表示的整数;
- 最小值是 -9,223,372,036,854,775,808(-2^63);
- 最大值是 9,223,372,036,854,775,807(2^63 -1);
- 这种类型主要使用在需要比较大整数的系统上;
- 默认值是 0L;
- 例子: long a = 100000L,Long b = -200000L。
“L”理论上不分大小写,但是若写成”l”容易与数字”1”混淆,不容易分辩。所以最好大写。
float:
- float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
- float 在储存大型浮点数组的时候可节省内存空间;
- 默认值是 0.0f;
- 浮点数不能用来表示精确的值,如货币;
double:
- double 数据类型是双精度、64 位、符合IEEE 754标准的浮点数;
- 浮点数的默认类型为double类型;
- double类型同样不能表示精确的值,如货币;
- 默认值是 0.0d;
boolean:
- boolean数据类型表示一位的信息;
- 只有两个取值:true 和 false;
- 这种类型只作为一种标志来记录 true/false 情况;
- 默认值是 false;
char:
- char类型是一个单一的 16 位 Unicode 字符;
- 最小值是 \u0000(即为0);
- 最大值是 \uffff(即为65,535);
- char 数据类型可以储存任何字符;