day03复习
流程控制:1.顺序结构 2.选择结构 3.循环结构
2.1 选择结构之switch的注意点
1.case之后只能是常量,不能是范围
2.case之后的常量只能是6种数据类型--byte、char、short、int、枚举类型(jdk5新增)、String(jdk7新增)
3.break是可选的,作用跳出switch-case结构
4.default是可选的,位置也不是固定的
break和continue说明:
1.break是跳出最近的循环体,continue是跳出本次循环
2.带标签的break和continue,可以自己控制跳出那层循环体
label:for(int i=1;i<=4;i++){
for(int j=1;j<=10;j++){
if(j%4==0){
break:label;
}
}
System.out.println(j);
}
数组
1.什么是数组?
数组是相同数据类型有序排列的集合,并用一个名字命名,使用下标对数组元素进行管理
2.数组的特点
①数组是有序的
②数组是引用数据类型,数组元素可以使基本数据类型也可以是引用数据类型
③创建数组对象时会在内存中开辟一整块连续的空间
④数组的长度必须是确定,一旦确定无法更改
3.数组的分类:
按照维数分:①一维数组②二维数组
按照数组元素数据类型分:①基本数据类型数组②引用数据类型数组
4.一维数组的使用
①数组的声明和初始化
1.静态初始化 int [ ] arr =new int [ ]{1,2,3,4}; //声明和初始化同时进行
2.动态初始化 int [ ] arr=new int [3]; //声明和初始化不同时进行
②数组的长度
length属性:可以获取数组的长度
int [] a = new int []{1,2,3,4};
System.out.println(a.length); //4
③数组的遍历
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
④数组元素的默认初始值
1.整型:0
2.浮点型:0.0
3.字符型:0(ASCII对应的0)
4.布尔型:false
5.引用数据类型:null
⑤数组的内存空间
说明:
String有字符串池,上面的存放的应该是字符串池的地址,由于还未了解到哪里暂时先这样写
int [] a = new int []{1,2,3,4};
System.out.println(a); // [I@d716361
[:表示一维
I:表示整型
@d716361:表示地址
5.二维数组
二维数组:在一维数组的基础上,每个数组元素又是个一维数组
二维数组的使用:
①二维数组的声明和初始化
动态初始化:
int [ ] [ ] arr =new int [ 4] [2 ];
int [ ] [ ] arr1=new int [ 4] [ ];
静态初始化:
int [ ] [ ] arr2=new int [ ] [ ]{{1,2,3},{a,b},{1,a,2}};
②二维数组的长度
与一维数组相同,调用length属性
System.out.print(arr.length); //4
System.out.print(arr[0].length); //2
③二维数组的遍历
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+" ");
}
}
④二维数组元素的初始化默认值
System.out.print(arr); //二维地址值
System.out.print(arr[0]); //一维地址值
System.out.print(arr[2][2]); // 0
⑤二维数组的内存结构