目录
变量VS数组
变量:变量是用来存储数据的空间,只能存储一个数据类型的值。
数组:数组也是用来存储数据的空间,可以存储多个数据类型的值。
数组的组成
标识符:
1.标识符是数组的名称和变量标识符一样,由数字、字母、美元字符和下划线组成。
2.标识符不能以数字开头,不建议以美元符号开头。
数组元素:
在数组中存储的每一个数据称为数组元素。
元素下标:
数组在内存中用连续的存储空间来存储数据,用元素下标来区分数组中的每一个数据,元素下标从0开始,下标也叫索引。
元素类型:
元素类型是存储来数组中每个数据的基本数据类型,元素类型必须和数组类型相同,否则会出错。
声明数组
语法:数据类型[ ] 标识符(数组名); 或 数据类型 标识符(数组名)[ ];
//声明数组的两种方式
int[] num01 ;
int num02[];
分配空间
为数组分配内存空间是确定数组中存储可存储的数据元素个数。
语法:标识符(数组名) = new 数据类型[数组元素个数];
//分配内存空间
num01 = new int[3];
num02 = new int[4];
赋值
将数据存储在数组当中。
如果没有给元素赋值,系统会给元素赋予一个默认值,int类型默认值是“0”,double类型默认是“0.0”,char类型默认是“(空格)”,String类型默认是“null”。
语法:标识符(数组名)[下标] = 数据;
//赋值
num01[0] = 10;
num02[0] = 100;
操作数据
使用标识符(数组名)[下标]来操作数据。
语法:标识符(数组名)[下标]
//操作数据
num01[0] = num02[0];
System.out.println(num01[0]);
System.out.println(num02[0]);
声明数组、分配空间合并写
语法:
数据类型[ ] 标识符(数组名) = new 数据类型[数组元素个数];
或 数据类型 标识符(数组名)[ ] = new 数据类型[数组元素个数];
//声明数组和分配内存空间合并写的两种形式
double[] num05 = new double[5];
double num06[] = new double[6];
声明数组、分配空间、赋值合并写
语法:
数据类型[ ] 标识符(数组名) = new 数据类型[ ]{数据1,数据2,...,数据n};
或 数据类型 标识符(数组名)[ ] = new 数据类型[ ]{数据1,数据2,...,数据n};
//声明数组、分配内存空间、赋值合并写的两种形式
char[] ch01 = new char[]{'a','b','c'};
char ch02[] = new char[]{'d','e','f'};
声明数组、分配空间、赋值合并简写
语法:
数据类型[ ] 标识符(数组名) = {数据1,数据2,...,数据n};
或 数据类型 标识符(数组名)[ ] = {数据1,数据2,...,数据n};
//声明数组、分配内存空间、赋值合简写的两种形式
char[] ch01 = {'a','b','c'};
char ch02[] = {'d','e','f'};
元素下标越界
1.元素下表越界在程序不检查,书写时程序不会出错,运行时会出错,控制台提示下标越界异常。
2.下标越界异常“ArrayIndexOutOfBoundsException”
double num06[] = new double[6];
//下标越界不报错,输出时报错下标越界异常
num06[8] = 30;
System.out.println(num06[8]);
for循环遍历数组
将数组中元素按照下标顺序依次输出。
//for循环遍历数组,输出数组ch01中的数据元素
char[] ch01 = {'a','b','c'};
for(int i = 0 ; i < ch01.length ; i++){
System.out.print(ch01[i] + " ");
}
增强for循环便利数组
将数组中元素按照下标顺序依次输出。
语法结构:
for(数据类型 变量 : 数组或集合){
代码块;
}
//增强for循环遍历数组,输出数组ch02中的数据元素
char ch02[] = {'d','e','f'};
for(char a : ch02){
System.out.print(a + " ");
}