(1)循环结构
:当重复执行相同的代码或者是相似的代码时。
循环三要素:
1): 循环变量的声明:用于控制循环次数的循环因子
2): 循环条件: 用于判断是否执行相同或相似内容(循环体)的条件
3):循环变量的改变方向:
向着循环结束的方向改变。
(1)for循环:
语法:
for(变量的声明和初始化;循环条件;变量的改变方向){
循环体;
}
执行逻辑:
程序遇到for时,一定执行 变量的声明和初始化
然后执行循环条件的判断
如果为false,会跳过循环结构,执行后续代码。
如果为true,执行循环体,然后再执行变量的改变
再执行循环条件的判断,
.......
循环体:是要重复执行的相同或相似逻辑
break关键字:用在循环结构中时,表示结束/打断循环
continue关键字:用在循环结构中,表示结束当次循环体,继续
下一次循环
双层for循环
(笔记自己整理)
(2)while循环
语法:
while(循环条件){
循环体
}
执行逻辑:
当程序遇到while时,一定执行循环条件,
如果判断结果为false,就结束循环结构,执行后续代码
如果判断结果为true,就执行循环体,
然后再判断循环条件......
(3)do-while循环
语法:
do{
循环体
}while(循环条件);
执行逻辑:当程序遇到do关键字时,一定先执行一次
循环体,然后再判断循环条件,
如果条件为false,结束循环结构,执行后续代码
如果条件为true,再执行一次循环体,
然后再判断条件的成立与否
........
while/do-while/for的区别:
while/do-while:适合不知道循环次数的逻辑
for:适合知道循环次数的逻辑
while/for一般先判断条件,再执行循环体
do-while:一定先执行一次循环体,再判断条件
小技巧:什么时候使用while,什么时候使用do-while
某些逻辑可以翻译成如下:
当......就执行.....:适合使用while
做.....直到.......:适合使用do-while
数组:
1、概念:一组相同类型的数据的组合
数组也是一种引用类型,
2、名称:数组名称不是固定的,与存放的数据的类型有关。
如: 存放一组int类型的数据,
数组名称 int[]
存放一组字符串数据
数组名称 String[]
存放一组Scanner类型的数据
数组名称 Scanner[]
存放一组字符类型的数据
数组名称 char[]
3、元素的概念:
数组中的每个数据,都是这个数值的元素。
4、数组的声明与初始化
声明:元素类型[] 变量名;
元素类型 变量名[];--不建议此写法
变量的初始化的时机:2种
(1)声明时直接初始化
(2)先声明,再初始化(使用前初始化)
数组的变量初始化:3种情况
(1)静态初始化
String[] names = {"A","B"};
int[] nums = {};
(2)动态初始化
--规定数组长度的写法
int[] ages = new int[length];
其实有默认元素:
整数类型:默认是0
浮点数类型:默认0.0
字符类型:默认'\u0000'
布尔类型:默认false
引用数据类型:默认值null
--不规定长度的写法
int[] ages = new int[]{};
double[] counts = new double[]{1.2,3.14};
5、数组的长度:
即数组元素的个数
表示方式:变量名.length;
6、数组的下标(index):
下标从0开始,最后一个元素的下标为:length-1;
下标范围:0~length-1
7、数组元素的访问(查看):
通过下标进行查看
语法:变量名[index];
元素的遍历(从头到尾依次查看)
for(int i=0;i<变量名.length;i++){
System.out.println(变量命[i]);
}
8、数组元素的覆盖(赋值,替换)
语法:变量名[index] = value;
9、数组间的赋值
就是指变量之间的赋值。
通过一个变量对数组的元素进行修改,
那么与之相关的变量对应的数组的元素
也会发生变化。
10、数组下标越界异常:
java.lang.ArrayIndexOutOfBoundsException
出现的原因:
访问数组元素时的下标超出了范围
正确范围:0~length-1
错误下标:
变量名[-1]
变量名[length]
11、引用类型之Arrays
是数组的工具类。此类提供了很多对数组操作的功能方法
如:
String info = Arrays.toString(数组名);
Arrays.toString():此方法是将数组的元素
一一拼接成字符串.
格式如下:
"[元素1,元素2,.....元素length-1]"
12、数组的复制
数组的特点:一经创建,长度不可变。
系统复制法:
System.arraycopy(src,start1,des,start2,length);
src:源数组,即被复制的数组名
start1:源数组复制的开始下标
des:目标数组,即复制到的数组名
start2:目标数组复制的开始下标
length:复制的长度
工具类提供的复制方法:
元素类型[] 变量名=Arrays.copyOf(src,newLength);
src:源数组
newLength:新数组的长度
功能解释:从src的下标为0的元素开始复制
复制到长度为newLength的新数组中
新数组存放元素的开始位置为0