21-多维数组
原创2023年12月1日大约 4 分钟...约 1348 字
0. 目录
- 如果要存储多年的成绩怎么办?
- 多维数组
- 用多维数组存储多年的成绩
1. 如果要存储多年的成绩怎么办?
- 为每年创建一个数组?
- 这种行为和为每一门成绩创建一个变量很像!
import java.util.Scanner;
public class OneYearOneArray {
public static void main(String[] args) {
// 声明六个变量, 分别代表六门科目的成绩
int YuWenIndex = 0;
int ShuXueIndex = 1;
int WaiYuIndex = 2;
int WuLiIndex = 3;
int HuaXueIndex = 4;
int ShengWuIndex = 5;
// 每门课的名字
String[] names = new String[6];
names[YuWenIndex] = "语文";
names[ShuXueIndex] = "数学";
names[WaiYuIndex] = "外语";
names[WuLiIndex] = "物理";
names[HuaXueIndex] = "化学";
names[ShengWuIndex] = "生物";
// 每门课的成绩
double[] year1 = new double[6];
// 用随机数给成绩赋值
for (int i = 0; i < 6; i++) {
year1[i] = 80 + Math.random() * 20;
}
// 每门课的成绩
double[] year2 = new double[6];
// 用随机数给成绩赋值
for (int i = 0; i < 6; i++) {
year2[i] = 80 + Math.random() * 20;
}
// 每门课的成绩
double[] year3 = new double[6];
// 用随机数给成绩赋值
for (int i = 0; i < 6; 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 + "年的" + names[scoreIndex] + "的成绩是:" + yearToUse[scoreIndex]);
}
}
2. 多维数组
2.1 创建一个二维数组,二维数组是一位数组的自然延伸
double[][] scores = new double[3][6]
double[][] scores = new double[3][6]
一维数组就是一个中括号,二维数组就是两个中括号,三维数组就是三个括号。
import java.util.Scanner;
public class OneArrayForAll {
public static void main(String[] args) {
// 声明六个变量, 分别代表六门科目的成绩
int YuWenIndex = 0;
int ShuXueIndex = 1;
int WaiYuIndex = 2;
int WuLiIndex = 3;
int HuaXueIndex = 4;
int ShengWuIndex = 5;
// 每门课的名字
String[] names = new String[6];
names[YuWenIndex] = "语文";
names[ShuXueIndex] = "数学";
names[WaiYuIndex] = "外语";
names[WuLiIndex] = "物理";
names[HuaXueIndex] = "化学";
names[ShengWuIndex] = "生物";
Scanner scanner = new Scanner(System.in);
System.out.println("请输入共有多少年的成绩:");
int yearCount = scanner.nextInt();
double[][] scores = new double[yearCount][names.length];
for (int i = 0; i < yearCount; i++) {
for (int j = 0; j < names.length; j++) {
scores[i][j] = 80 + Math.random() * 20;
}
}
System.out.println("请问要查看第几年的成绩?");
int yearToUse = scanner.nextInt() - 1; // 优化用户体验
System.out.println("请问要查看第几科的成绩?");
int scoreToUse = scanner.nextInt() - 1;
System.out.println("第" + (yearToUse + 1) + "年的第" + (scoreToUse + 1) + "门的成绩是:" + scores[yearToUse][+scoreToUse]);
}
}
public class OneArrayForAll {
public static void main(String[] args) {
// 声明六个变量, 分别代表六门科目的成绩
int YuWenIndex = 0;
int ShuXueIndex = 1;
int WaiYuIndex = 2;
int WuLiIndex = 3;
int HuaXueIndex = 4;
int ShengWuIndex = 5;
// 每门课的名字
String[] names = new String[6];
names[YuWenIndex] = "语文";
names[ShuXueIndex] = "数学";
names[WaiYuIndex] = "外语";
names[WuLiIndex] = "物理";
names[HuaXueIndex] = "化学";
names[ShengWuIndex] = "生物";
int yearCount = 6;
double[][] scores = new double[yearCount][names.length];
for (int i = 0; i < yearCount; i++) {
for (int j = 0; j < names.length; j++) {
scores[i][j] = 80 + Math.random() * 20;
}
}
}
}
/**
* @ClassName: MultiDimensionArray
* @Description: TODO
* @Author: AI悦创
* @Date: 2022/10/9 10:52
* @Version: V1.0
* @Blog: https://www.bornforthis.cn
*/
public class MultiDimensionArray {
public static void main(String[] args) {
// 创建一个double类型的二维数组
double[][] multiDimensionArr = new double[3][5];
// 循环查看每个数组元素的值,在给数组元素赋值前,数组元素的值其实都是每种类型的初始值。
for (int i = 0; i < multiDimensionArr.length; i++) {
for (int j = 0; j < multiDimensionArr[i].length; j++) {
System.out.println("multiDimensionArr[" + i + "][" + j + "]=" + multiDimensionArr[i][j]);
}
}
// 其实第一维的数组,每个元素都是一个下一维度的属于的变量。在这里我们可以改变这个变量的值
// 也就是让它指向一个新的变量。
multiDimensionArr[2] = new double[100];
// 检查每个的数组的长度,发现最后一个的长度不一样了,因为它指向了新的数组。
for (int i = 0; i < multiDimensionArr.length; i++) {
System.out.println("multiDimensionArr[" + i + "].length=" + multiDimensionArr[i].length);
}
}
}
输出:
/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=60118:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/huangjiabao/GitHub/Java_Coder/Coder20/out/production/Coder20 MultiDimensionArray
multiDimensionArr[0][0]=0.0
multiDimensionArr[0][1]=0.0
multiDimensionArr[0][2]=0.0
multiDimensionArr[0][3]=0.0
multiDimensionArr[0][4]=0.0
multiDimensionArr[1][0]=0.0
multiDimensionArr[1][1]=0.0
multiDimensionArr[1][2]=0.0
multiDimensionArr[1][3]=0.0
multiDimensionArr[1][4]=0.0
multiDimensionArr[2][0]=0.0
multiDimensionArr[2][1]=0.0
multiDimensionArr[2][2]=0.0
multiDimensionArr[2][3]=0.0
multiDimensionArr[2][4]=0.0
multiDimensionArr[0].length=5
multiDimensionArr[1].length=5
multiDimensionArr[2].length=100
Process finished with exit code 0
欢迎关注我公众号:AI悦创,有更多更好玩的等你发现!
公众号:AI悦创【二维码】
AI悦创·编程一对一
AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh
C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh
方法一:QQ
方法二:微信:Jiabcdefh
你认为这篇文章怎么样?
- 0
- 0
- 0
- 0
- 0
- 0