认识多维数组
-
-
这种行为和为每一门成绩创建一个变量很像!
import java.util.Scanner;
public class OneYearOneArray {
public static void main(String[] args) {
int chinese = 0;
int math = 1;
int english = 2;
int physics = 3;
int Chemical = 4;
int biology = 5;
int totalScoreCount = 6;
String[] course_name = new String[totalScoreCount];
course_name[chinese] = "语文";
course_name[math] = "数学";
course_name[english] = "英语";
course_name[physics] = "物理";
course_name[Chemical] = "化学";
course_name[biology] = "生物";
//每门课的成绩 第一年
double[] year1 = new double[totalScoreCount];
//随机数给成绩赋值
for (int i = 0; i < totalScoreCount; i++) {
year1[i] = 80 + Math.random() * 20;
}
//每门课的成绩 第一年
double[] year2 = new double[totalScoreCount];
//随机数给成绩赋值
for (int i = 0; i < totalScoreCount; i++) {
year2[i] = 80 + Math.random() * 20;
}
//每门课的成绩 第一年
double[] year3 = new double[totalScoreCount];
//随机数给成绩赋值
for (int i = 0; i < totalScoreCount; i++) {
year3[i] = 80 + Math.random() * 20;
}
double[] yearToUse;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要查看第几年的成绩:");
int year = scanner.nextInt();
switch (year) {
case 1:
yearToUse = year1;
break;
case 2:
yearToUse = year2;
break;
case 3:
yearToUse = year3;
break;
default:
System.out.println("输入的年份不对, 将查看最新一年的成绩");
yearToUse = year3;
break;
}
System.out.println("请输入要查看的成绩编号:");
int scoreIndex = scanner.nextInt();
System.out.println("第" + year + "年的" + course_name[scoreIndex] + "的成绩是:"+yearToUse[scoreIndex]);
}
}
多维数组
创建一个二维数组,二维数组是一位数组的自然延伸
-
double[][]scores = new double[3][6] -
double[][]scores = new double[3][6]
//java中 ,并没有限制数组的维度 ,但是三维四维数组数据量就比较复杂了
使用多维数组的方法存储多年的成绩
import java.util.Scanner;
public class OneArrayForAll {
public static void main(String[] args) {
int chinese = 0;
int math = 1;
int english = 2;
int physics = 3;
int Chemical = 4;
int biology = 5;
//int totalScoreCount = 6;
String[] course_name = new String[6];
course_name[chinese] = "语文";
course_name[math] = "数学";
course_name[english] = "英语";
course_name[physics] = "物理";
course_name[Chemical] = "化学";
course_name[biology] = "生物";
Scanner in = new Scanner(System.in);
System.out.println("请问要保存几年的成绩? ");
int yearToStores = in.nextInt();
double[][] scores = new double[yearToStores][course_name.length];
for (int i=0;i<yearToStores;i++){
for (int j=0;j< course_name.length;j++){
scores[i][j] = 80 + Math.random() * 20;
}
}
System.out.println("请问你要查看第几年的成绩?");
int year = in.nextInt() - 1;
//这里输入是数组的下标,因此需要-1
System.out.println("请输入要查看的课程编号");
int scoreIndex = in.nextInt() - 1;
System.out.println("第"+(year+1)+"年的"+course_name[scoreIndex]+"成绩是:"+scores[year][scoreIndex]);
}
}
遍历二维数组
public class MultiDimensionArray {
public static void main(String[] args) {
//创建一个double类型的数组
double[][] multDimensionArr = new double[3][5];
//循环查看每个数组的值 ,在给数组元素赋值前 ,数组元素的值其实都是每种类型的初始值
for (int i=0;i<multDimensionArr.length;i++){
for (int j=0;j<multDimensionArr[i].length;j++){
System.out.println("mulDimensionArr["+i+"]["+j+"] = "+multDimensionArr[i][j]);
}
}
//其实第一维的数组 ,每个元素都是一个下一维度的属于的变量。在这里我们可以改变这个变量的值
//也就是让它指向一个新的变量。
multDimensionArr[2] = new double[100];
//检查每个的数组的长度,发现最后一个的长度不一样了,因为它指向了新的数组。
for (int i = 0;i<multDimensionArr.length;i++){
System.out.println("multiDimensionArr[" + i + "].length=" + multDimensionArr[i].length);
}
}
}

浙公网安备 33010602011771号