Java 学习之路(十九)- 数组

用数组保存成绩

语数外物化生的成绩怎么表示?
用六个变量表示,如果有更多的科目怎么办?
如果有更多的科目怎么办?
如果想求出成绩最高的科目怎么办?

什么是数组,数组的语法

数组的特点是:

  • 数组是相同类型的变量的集合,所有元素的类型都一样
  • 可以指定数组包含的元素个数,最多为 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);

猜你喜欢

转载自blog.csdn.net/Kevinblant/article/details/119721852