文章目录
- 静态初始化数组
- 数组的访问:遍历
- 数组案例
- 动态初始化数组
- 总结
- 案例
静态初始化数组
定义数组的时候直接给数组赋值。
简化格式:
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-1
System.out.println(arr.length-1);
//最大索引不一定是1,下面这个数组的索引就是0
int[] 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对应的字符,但是并没有这个字符,所以强制转换得到的数字就是0
System.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);
}
}