上面这张表格实际上是一个n行*6列的二维数组。
多维数组的语法:
double[] arrayName = double[n]; // (一维)数组,数组长度为n
double[][] dimensionArrayName = double[m][n]; // 二维数组(m行 * n列)
double[][][] threeDimensionArrayName = double[x][y][z] // 三维数组
注意:每一个中括号表示一个维度。
习题
设计一个程序,可以保存n年的各科成绩,可以对这些年的成绩进行查询。
测试用例:保存3年的成绩,查询第三年的生物成绩。
import java.util.Scanner;
public class Example2 {
public static void main(String[] args) {
// 为每一门课程设置下标
int ChineseIndex = 0;
int MathIndex = 1;
int EnglishIndex = 2;
int PhysicalIndex = 3;
int ChemistryIndex = 4;
int BiologyIndex = 5;
// 创建一个数组保存每一门课的名称
String[] names = new String[6];
names[ChineseIndex] = "语文";
names[MathIndex] = "数学";
names[EnglishIndex] = "英语";
names[PhysicalIndex] = "物理";
names[ChemistryIndex] = "化学";
names[BiologyIndex] = "生物";
Scanner in = new Scanner(System.in);
System.out.println("存放几年的成绩呢?");
int years; // 存放成绩多少年的年数
years = in.nextInt();
// 创建一个二维数组来存放每门课的成绩 行表示年数,列表示科目数
double[][] scores = new double[years][names.length];
// 随机生成80-100的成绩放入二维数组中
for (int i = 0; i < years; i++) {
for (int j = 0; j < names.length; j++) {
scores[i][j] = 80 + Math.random() * 20;
System.out.println("第" + (i + 1) + "年的" + names[j] + "成绩为:" + scores[i][j]);
}
}
// 查询某一年的某一课程的成绩
System.out.println("您要查询哪一年的成绩呢?");
int whichYear = in.nextInt() - 1;
System.out.println("哪一门成绩呢?");
int whichLesson = in.nextInt() - 1;
System.out.println("第" + (whichYear + 1) + "年的" + names[whichLesson] + "成绩为" + scores[whichYear][whichLesson]);
}
}