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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值