用数组保存成绩
语数外物化生的成绩怎么表示?
用六个变量表示,如果有更多的科目怎么办?
如果有更多的科目怎么办?
如果想求出成绩最高的科目怎么办?
什么是数组,数组的语法
数组的特点是:
- 数组是相同类型的变量的集合,所有元素的类型都一样
- 可以指定数组包含的元素个数,最多为 int 的最大值个
- 元素有固定的顺序
- 每个元素都有一个固定的编号,称之为索引 ( index ),从 0 开始递增,类型为 int。
- 可以像操作变量一样读写数组中的任何一个元素
- 如果说之前的变量是一张有名字的纸,可以通过这个名字读写这个变量;数组则是一个有名字的本子。本子有一个名字,每页纸有一个页码。可以通过本子的名字和页码读写对应的数组元素
创建和使用一个数组的语法
数组元素类型[] 变量名 = new 数组元素类型[ 数组长度 ]
变量名[索引]
可以使用这个变量,可以读取也可以给它赋值
int[] intArray = new int[9];
// 0
System.out.println(intArray[2]);
double[] doubleArray = new double[100];
// 0.0
System.out.println(doubleArray[66]);
用数组处理6门课的成绩
创建数组来表示6门课的成绩
- 创建一个大小为 6 的双类型的数组
- 创建一个天小为 6 的字符串数组,代表每门课的名字
- 为每门课创建一个 int 变量,值为这门课的成绩对应的数组的索引,以便操作每门课的成绩和名字
求出最高的成绩
- 创建一个大小为 6 的 double 类型的数组
- 创建一个大小为 6 的 String 数组,保存每门课的成绩
- 为每门课创建一个 int 变量,值为这门课的成绩对应的数组的索引,以便操作每门课的成绩
- 实现计算最高成绩的逻辑
// 声明六个变量, 分别代表六门科目的成绩
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[] scores = new double[6];
// 用随机数给成绩赋值
for (int i = 0; i < 6; i++) {
scores[i] = 80 + Math.random() * 20;
}
// 计算最高成绩和最高成绩对应的科目的索引
double maxScore = -1;
int maxScoreIndex = -1;
for (int i = 0; i < 6; i++) {
System.out.println(names[i] + "的成绩为" + scores[i]);
if (maxScore < scores[i]) {
maxScore = scores[i];
maxScoreIndex = i;
}
}
// 输出最高成绩科目和成绩
System.out.println("最高分的科目为" + names[maxScoreIndex] + ",成绩为:" + maxScore);