java——统计一组学生成绩

任务7、统计一组学生成绩

在这里插入图片描述

(一)编程实现

在net.yangxinying.p02.t07包里创建Task07类在这里插入图片描述

package net.yangxinying.p02.t07;

import java.util.Scanner;

/**
 * 功能:统计一组学生成绩
 * 作者:杨鑫莹
 * 日期:2022年04月07日
 */
public class Task07 {
    public static void main(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]范围内

package net.yangxinying.p02.t07;

import java.util.Scanner;

/**
 * 功能:统计一组学生成绩
 * 作者:杨鑫莹
 * 日期:2022年04月14日
 */
public class Task07 {
    public static void main(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++) {
            while (true) {
                System.out.print("scores[" + i + "] = ");
                scores[i] = sc.nextDouble();
                //判断成绩是否合法 - [0,100]
                if (scores[i] >= 0 && scores[i] <=100) {
                    break; //跳出while循环
                }else {
                    //提示用户输入成绩不合法
                    System.out.println("温馨提示:成绩必须在[0,100]之间!");
                }
            }
        }

        //处理部分
        sum = 0;
        for (int i = 0; i < scores.length; i++) {
            sum = sum + scores[i];
        }
        average = sum / scores.length;

        max = Double.MIN_VALUE;
        for(double score : scores) {
            if(max < score) {
                max = score;
            }
        }

        min = Double.MAX_VALUE;
        for(double score : scores) {
            if (min > score) {
                min = score;
            }
        }

        //输出部分
        System.out.println("sum = " + sum);
        System.out.println("average = " + average);
        System.out.println("max = " + max);
        System.out.println("min = " + min);
    }
}

在这里插入图片描述

(二)讲解知识点

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"};
(3)数组定义的内存变化图

声明数组变量,此时数组变量还是null,赋值实例化数组之后,才会给它分配内存空间
在这里插入图片描述

2、不同类型数组元素默认初始值

在这里插入图片描述

3、避免数组下标越界异常

每个数组的索引(下标)都有一个范围,即[0, length - 1]。在访问数组的元素时,索引不能超出这个范围,否则程序会报错(ArrayIndexOutOfBoundsException,即数组角标越界异常)。
在这里插入图片描述

4、避免数组空指针异常

在使用变量引用一个数组时,变量必须指向一个有效的数组对象,如果该变量的值为null,则意味着没有指向任何数组,此时通过该变量访问数组的元素会出现错误(NullPointerException,即空指针异常)。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值