编写一个程序,根据用户输入的总人数和总成绩计算平均成绩。要求程序能够处理总人数或者总成绩不是数字时的情况。

根据题目要求得知,在程序中需要对多种异常情况进行不同的处理。此时就用到了在《Java try catch语句详解》一节学习的多重 catch 语句。

使用多重 catch 语句时,Java 虚拟机会把实际拋出的异常对象依次和各个 catch 代码块中声明的异常类型匹配,如果异常对象为某个异常类型或者其子类的实例,就执行该 catch 代码块,而跳过其它的 catch 代码块。具体实现代码如下:

import java.util.InputMismatchException;

import java.util.Scanner;

public class Test03 {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

try {

System.out.println("请输入班级总人数:");

int count = input.nextInt();

System.out.println("请输入总成绩:");

int score = input.nextInt();

int avg = score / count; // 获取平均分

System.out.println("本次考试的平均分为:" + avg);

} catch (InputMismatchException e1) {

System.out.println("输入数值有误!");

} catch (ArithmeticException e2) {

System.out.println("输入的总人数不能为0!");

} catch (Exception e3) {

e3.printStackTrace();

System.out.println("发生错误!" + e3.getMessage());

}

}

}

如上述代码,在 main() 方法中使用了多重 catch 语句来捕获各种可能发生的异常,包括 InputMismatchException 异常、ArithmeticException 异常以及其他类型的异常。

当用户输入的总人数或者总成绩不为数值类型时,程序将拋出 InputMismatchException 异常,从而执行第 15 行代码,输出结果如下所示:

请输入班级总人数:

50

请输入总成绩:

1250a

输入数值有误!

请输入班级总人数:

50a

输入数值有误!

当输入的总人数为 0 时,计算平均成绩就会出现被除数为 0 的情况,此时会拋出 ArithmeticException 异常,从而执行第 17 行代码,输出结果如下所示:

请输入班级总人数:

0

请输入总成绩:

100

输入的总人数不能为0!

如下所示的是当输入的总人数和总成绩均为正常数值类型时的输出结果:

请输入班级总人数:

50

请输入总成绩:

1250

本次考试的平均分为:25

java计算平均值_Java计算平均成绩相关推荐

  1. Java/eclipse新建项目TR51,编写程序计算各小组学生的平均成绩和总成绩,并计算所有学生的平均成绩

    题目: 1.定义长度为2的二维数组,分别存入两个小组的学生成绩, 第一组为3人,第二组为5人. 2.从键盘接收成绩给数组赋值,存入学生成绩. 3.设计一个实例方法方法 calgroup( int rs ...

  2. 已知某个班有 30 个学生,学习 5 门课程,已知所有学生的各科成绩。计算每个学生的平均成绩,并输出

    已知某个班有 30 个学生,学习 5 门课程,已知所有学生的各科成绩.计算每个学生的平均成绩,并输出 注意: 定义一个二维数组 A,用于存放 30 个学生的 5 门成绩. 定义一个一维数组 B,用 于 ...

  3. 3、有5个学生,每个学生的数据信息包括学号、姓名、4门课程成绩,编程实现学生成绩管理。要求: (1)用input函数来输入数据,并计算每个学生的平均成绩。 (2)用print函数来输出学生的信息

    3.有5个学生,每个学生的数据信息包括学号.姓名.4门课程成绩,编程实现学生成绩管理.要求: (1)用input函数来输入数据,并计算每个学生的平均成绩. (2)用print函数来输出学生的信息 #i ...

  4. 计算co1课程的平均成绩mysql_MySQL练习

    一.表关系 二.创建数据库和表 (一)创建数据库 创建数据库test2,用于存放上述表 mysql> create database test2 defaultcharset utf8 coll ...

  5. java 递归编译_java计算x^n的递归方法?求高手给个算法最佳的 最好能编译通过 本人处于java初学者时期^^...

    java计算x^n的递归方法?求高手给个算法最佳的 最好能编译通过 本人处于java初学者时期^^ 关注:193  答案:4  mip版 解决时间 2021-02-03 20:14 提问者西伯利亚狼 ...

  6. java 间隔分钟_java 计算两个 日期时间 相间隔多少天小时分钟 等

    1.时间转换data默认有toString() 输出格林威治时间,比如说Date date = new Date(); String toStr = date.toString(); 输出的结果类似于 ...

  7. java 周次_JAVA计算学校学期周次

    JAVA计算学校学期周次 2020-09-09 / 0 评论 / 313 阅读 / 正在检测是否收录... 09/09 package com.zs.create.test; import java. ...

  8. java 月份间隔_java计算两个日期之间相隔的月份(向下取整)

    最近需求里面有个需要计算两个日期之间相隔的月份,写起来还挺繁琐,需要将各种情况都要考虑到,写了一个作为以后自己的工具吧. //获取哪一天 public static int getDay(Date d ...

  9. java 计算九宫格_Java计算手机九宫格锁屏图案连接9个点的方案总数

    (一)问题 九宫格图案解锁连接9个点共有多少种方案? (二)初步思考 可以把问题抽象为求满足一定条件的1-9的排列数(类似于"八皇后问题"),例如123456789和9876543 ...

最新文章

  1. Failed while installing Dynamic Web Module 2.5. Project facet jst.web.jstl has not been defined.
  2. html中设置父盒子的高度,【CSS】设置浮动元素高度等于父元素
  3. 青龙羊毛——果园合集(快手+抖音)(教程)
  4. /bin/bash^M: bad interpreter: 没有那个文件或目录--转载
  5. Jmeter连接SqlServer数据库进行压力测试
  6. 蜗蜗 Linux内核芬妮下,201402 - 蜗窝科技
  7. 初中参观机器人博物馆的作文_展馆导览机器人好不好用?小笨展馆机器人案例...
  8. 前端:JS/16/JavaScript简介,lt;script标记,常用的两个客户端输出方法,JS注释,JS变量(声明,命名规则,赋值),变量的数据类型(数值型,字符型)
  9. 第十四章:求雨的法术
  10. 95-190-028-源码-window-Window介绍与使用md
  11. 安装使用ubuntu和opensuse
  12. BufferedReader类
  13. Android 设置 横屏 竖屏
  14. 牛客网–华为机试在线训练4:字符串分隔
  15. 电子邮件服务器-PostFix
  16. Sourse Insight使用过程中的常使用功能简介
  17. IEC61850概述
  18. Spark核心概念与案例拆解
  19. 一款相当好用的排版软件
  20. BP神经网络:误差反向传播公式的简单推导

热门文章

  1. 3D空战游戏Android源码
  2. 把Firfox的缓冲设置到内存盘
  3. 2022年全球与中国微型光谱仪市场现状及未来发展趋势
  4. leelen可视对讲怎么接线_电梯对讲系统解决方案
  5. 数字化转型导师坚鹏:BLM模型的起源研究与华为成功应用案例
  6. 小学期web实训笔记(1)-html【菜狗级】
  7. 计算机工程管理论文,计算机工程管理医院应用分析论文
  8. jar运行和停止脚本
  9. 最新彩虹易支付二次开发的系统源码+PHP内核
  10. python中seth是什么意思_python中的seth是什么意思