假如一组学生100个人,利用前面所学的知识,程序就需要声明10个变量s c o r e 1 , s c o r e 2 , . . . , s c o r e 100 \mathrm{score1, score2, …, score100}score1,score2,…,score100,来分别记住每位学生的成绩,计算平均分
a v e r a g e = s c o r e 1 + s c o r e 2 + . . . + s c o r e 100 100 \mathrm{average}=\displaystyle\frac{\mathrm{score1+score2+…+score100}}{100}average= 100 score1+score2+…+score100 会显得特别麻烦,此时我们用一个数组来保存100个成绩,通过数组的索引或下标来访问每一个成绩,可以使用循环来处理。
(一)编程实现
在net.lixin.p02.t07包里创建 t ask07
package net.lixin.p02.t07;
import java.util.Scanner;/**
* 功能
* 作者:李信
* 日期:2022年06月09日
*/
public class task07 {
public staticvoidmain(String[] args){// 声明部分double[] scores = new double[10];// 双精度一维数组,10个元素,scores[0], scores[1],..., scores[9]double sum, average, max, min;
Scanner sc=new Scanner(System.in);// 输入部分for(int i =0; i < scores.length; i++){
System.out.print("scores["+ i +"] = ");
scores[i]= sc.nextDouble();}// 处理部分
sum =0;for(int i =0; i < scores.length; i++){
sum = sum + scores[i];}
average = sum / scores.length;
max = Double.MIN_VALUE;for(int i =0; i < scores.length; i++){if(scores[i]> max){
max = scores[i];}}
min = Double.MAX_VALUE;for(int i =0; i < scores.length; i++){if(scores[i]< min){
min = scores[i];// 输出部分
System.out.println("sum = "+ sum);
System.out.println("average = "+ average);
System.out.println("max = "+ max);
System.out.println("min = "+ min);}}}}
可以利用增强for循环来遍历数组
课堂练习
任务1、确保输入成绩在[0, 100]范围内
任务2、确定最高分或最低分的位置
( 二)讲解知识点
详细讲稿:Java学习笔记2.6.1 数组 - 一维数组
1、一维数组定义
(1)语法格式
数组类型[] 数组名 = new 数组类型[数组长度];
数组类型[] 数组名 = new 数组类型[]{数组元素0, 数组元素1,...};
数组类型[] 数组名 ={数组元素0, 数组元素1,...};
(2 )数组定义示例
int[] ids = new int[100];
String[] names = new String[]{"洪艳林","陈燕文","郑晓琳","唐竹龙"};
Object[] student ={1,"张三丰","男",20,"15892924560","maths007@163.com"};