文章目录
- 静态初始化数组
- 数组的访问:遍历
- 数组案例
- 动态初始化数组
- 总结
- 案例
静态初始化数组
定义数组的时候直接给数组赋值。
简化格式:
int[] ages = {12,52,96};
完整格式:
int[] ages = new int[]{12,16,26};
- 数组变量名中存储的是数组在内存中的地址,数组是一种引用数据类型
- 什么类型的数据必须存放什么类型的数组
package com.zhang.define;public class ArrayDemo1 {public static void main(String[] args) {//目标:掌握数组的定义方式一:静态初始化数组//简写int[] age = {13,66,25,19};double[] score = {36.9,99.9,98.5};//全写int[] fee = new int[]{166,99,633,85};double[] score2 = new double[]{66,99,398.2};}
}
数组的访问:遍历
- 数组的长度属性:length
package com.zhang.define;public class ArrayDemo2 {public static void main(String[] args) {//目标: 掌握数组的访问int[] arr = {16,99,65};//1. 访问全部数据System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);//访问数组时,使用的索引超过了数组最大索引,会出现越界的提醒//System.out.println(arr[3]);//2. 修改数组中的数据arr[1] = 100;arr[2] = 50;System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);//3. 访问数组中元素的个数System.out.println(arr.length);//技巧:获取数组最大索引,即数组最大下标: arr.length-1System.out.println(arr.length-1);//最大索引不一定是1,下面这个数组的索引就是0int[] arr2 = {};}
}
运行:
数组案例
package com.zhang.define;public class ArrayTest4 {public static void main(String[] args) {// 数组遍历求和://需求:某部门5名员工的销售额是16,26,36,6,100,请计算出他们部门的总销售额int[] sales = {16,26,36,6,100};int sum = 0;for (int i = 0; i < sales.length; i++) {sum += sales[i];}System.out.println(sum);}
}
运行:
动态初始化数组
- 定义数组是先不存入具体的元素值,只确定存储数据的类型和数组的长度
int[] arr = new int[3];
- 静态初始化和动态初始化数组的写法是独立的,不能混用。
错的:int[] arr = new int[3]{33,26,52};
package com.zhang.define;import java.util.Scanner;public class ArrorDemo5 {public static void main(String[] args) {//目标:掌握定义数组的方式二:动态初始化数组int[] ages = new int[3];Scanner sc = new Scanner(System.in);System.out.println("请输入三个年龄:");for (int i = 0; i < ages.length; i++) {ages[i] = sc.nextInt();}for (int i = 0; i < ages.length; i++) {System.out.println(ages[i]);}System.out.println("-----------");//初始化char[] c = new char[3];//因为打印出来是ascii为0对应的字符,但是并没有这个字符,所以强制转换得到的数字就是0System.out.println((int)c[0]);}
}
运行结果:
总结
案例
package com.zhang.define;import java.util.Scanner;public class ArrayTest6 {public static void main(String[] args) {//需求:某歌唱比赛,需要开发一个系统:可以录入6名评委的打分,录入完毕后即输出平均分作为选手得分。double[] scores = new double[6];Scanner sc = new Scanner(System.in);double sum = 0;for (int i = 0; i < scores.length; i++) {System.out.println("请输入第"+(i+1)+"个评委的打分:");scores[i] = sc.nextDouble();sum += scores[i];}double rs = sum / (scores.length);System.out.println("选手的最后得分是:"+rs);}
}