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

根据题目要求得知,在程序中需要对多种异常情况进行不同的处理。此时就用到了在《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 成绩 排名算法_Java计算成绩平均值和排名

    以下供参考:package com.test; public class Student { /** * id */ private String id; /** * 学号 */ private St ...

  2. java 年计算_JAVA计算年/周的问题

    靠!最近有这个需求,把我郁闷的要死!!花了好几天了还是没有满意的结果,看来还得研究JDK自己的东东啊,没有根基,哪来的大厦? 终于还是看到了tag的文章,很感谢他! shit!我真的费了好大的劲,结果 ...

  3. java正方形个圆形面积_java计算图形面积(圆形,正方形, 长方形).pptx

    java计算图形面积(圆形,正方形, 长方形).pptx 还剩 21页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 方法的覆載( Overloadin ...

  4. java 日期 相差的天数_JAVA计算两个日期之间相差的天数

    在Java开发物流或是其他功能的时候会用到两个日期相差多天的数据,所以整理了一下备用. 调用方式: long date1 = getDateTime("20121201");//可 ...

  5. java 判断日期是周末_java计算两个日期之前的天数实例(排除节假日和周末)

    如题所说,计算两个日期之前的天数,排除节假日和周末.这里天数的类型为double,因为该功能实现的是请假天数的计算,有请一上午假的为0.5天. 不够很坑的是每个日期都要查询数据库,感觉很浪费时间. 原 ...

  6. java运行内存计算_java计算金额是放在内存中计算还是在sql中计算好呢?

    严格来说,数据库上的金额这个字段根本就不应该被直接set. 为什么这么说呢,因为在这个操作完成以后,实际上数据库要承载的信息被丢失了,丢失了那一部分呢?丢失了修改前的数值,而且是永久丢失了,再也找不回 ...

  7. java 角度计算_java计算时针和分针之间的夹角

    //计算时针和分针之间的夹角 import java.lang.Math; public class ClockAngle { public static void main(String[] arg ...

  8. java两个矩阵相乘_java计算两个n阶矩阵相乘

    自己是个新手,研究java数据结构,看到两个n阶矩阵相乘的题目,自己就试着写了一个简单的demo,哪里有不好的地方,也希望大家多提提意见,直接上代码了: package com.shujujiegou ...

  9. java 日期相差月数_Java 计算两个日期之间相差的月数

    /** * 计算两个日期之间相差的月数 * * @param date1 * @param date2 * @return */ public static int getMonths(Date da ...

最新文章

  1. 【经验】如何查看gcc、g++不加-std时的默认版本
  2. Microbiome:简单套路发高分文章--杨树内生和根际微生物组结构
  3. 执行phpize Cannot find config.m4
  4. ASP.NET MVC 学习网站
  5. Java并发编程(十三)同步容器类
  6. Go如何使用session
  7. jQuery对象的序列化详解
  8. oracle linux6 u盘安装,Oracle Enterprise Linux/Redhat Linux 6.0 U盘安装方法
  9. 值类型和引用类型及其区别!
  10. window10 物理网卡无法启用
  11. python 大智慧自定义数据_利用EXCEL函数公式制作大智慧自定义数据的方法
  12. TcaplusDB君 | 行业新闻汇编(7月1日)
  13. 鸿蒙当中使用WebView报空指针的问题
  14. java抠图边框颜色处理_ps抠图边缘颜色怎么处理
  15. win10电脑蓝屏自动修复失败无法开机的解决
  16. Qt+ffmpeg+x264远程协助软件Weekday技术原理及源码剖析
  17. 中登托管行结算路径_在非根路径上托管Next.JS应用
  18. linux 文件缓存大小设置,Linux文件读写机制及优化方式
  19. 对fiber的一点了解
  20. 不得不看的经典软件测试面试问题

热门文章

  1. kafka中leader和follower、AR、ISR、OSR、Controller的选举、为什么不能通过ZK的方式来选举partition的leader?
  2. MySQL事务隔离与行锁的关系
  3. 26部文学经典的开场白和结束语
  4. 基于手机微信或PC端的西门子PLC远程监控和数据采集解决方案
  5. 【转】android MSM8974 上DeviceTree简介----不错
  6. 落地零售智能体,百联集团全力打造面向未来的数字化商业体
  7. 【数据结构】栈与队列:后进先出与先进先出到底是啥?
  8. Reactive思考
  9. 微信开放平台 错误码61007: api is unauthorized to component
  10. 斯坦福学者:生物智能可能是解决AI发展瓶颈的关键