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

根据题目要求得知,在程序中需要对多种异常情况进行不同的处理。此时可以在 try 语句后定义两个或更多的 catch 语句块,其语法结构如下:

try

{

逻辑代码块

}

catch(ExceptionType1 e1)

{

处理代码块1

}

catch(ExceptionType2 e2)

{

处理代码块2

}

catch(ExceptionTypen en)

{

处理代码块n

}

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

import Java.util.InputMismatchException;

import java.utii.Scanner;

public class TestO3

{

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 异常,从而执行 System.out.println("输入数值有误!")代码,输出结果如下所示:

请输入班级总人数:

50

请输入总成绩:

1250a

输入数值有误!

请输入班级总人数:

50a

输入数值有误!

当输入的总人数为 0 计算平均成绩时会出现被除数为 0 的情况,此时会拋出 ArithmeticException 异常,从而执行 System.out.Println("输入的总人数不能为0!")代码,输出结果如下所示:

请输入班级总人数:

0

请输入总成绩:

100

输入的总人数不能为0!

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

请输入班级总人数:

50

请输入总成绩:

1250

本次考试的平均分为:25

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

  1. java中的数组长度的计算

    讲到了java中数组的长度的计算,那就是少不了了那个java中的数组的定义. int a[]=new int[5]; String[]str=new String[]; String[]str=new ...

  2. java中的日期时间的计算与比较

    在JAVA中日期的计算与比较可以使用Date和DateFormat来解决 public class Test{ public static void main(String[] args){ try{ ...

  3. Java中的Hash值的计算方式,java哈希算法简单数据类型的具体实现

    最近被提及Java中HashMap的一些实现及哈希冲突等,借鉴了一位老哥的部分解析,比较明白的展示hash算法的应用吧 结论: 对于String.Integer等类复写了Object中的hashCod ...

  4. Java 中对象占用内存大小计算

    原文地址 mp.weixin.qq.com byte 与 bit bit:位,比特.信息的最小单位,二进制数中的一个位数 (二进制位),其值为"0" 或"1": ...

  5. java中的取模_Java 中的取模和取余

    期末复习密码学时需要用到取模运算,发现 Java 中的 % 运算符并不是取模运算(Modulo Operation),而是取余运算(Complementation). 计算方法 对于整数 a,b 来说 ...

  6. java 中random类使用_Java中的天使和魔鬼:Unsafe类

    我们在看ConcurrentHashMap源码时经常看到Unsafe类的使用,今天我们来了解下Unsafe类. Java是一个安全的编程语言,它能最大程度的防止程序员犯一些低级的错误(大部分是和内存管 ...

  7. java中的分层概念_Java分层概念

    1.JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分?(下面所描述的service层就是biz) 首先这是现在最基本的分层方式,结合了SSH架构.modle层就是对 ...

  8. JAVA中常用的逻辑运算符_Java中的常见运算符以及使用

    Java中的运算符有算术运算符.关系运算符.逻辑运算符.赋值运算符.字符串连接运算符.三目运算符等.下面介绍一下这几种. 1.算术运算符 包括:加(+).减(-).乘(*).除(/).取余(%).自加 ...

  9. java中接口私有反方_Java 8:在接口中声明私有和受保护的方法

    java中接口私有反方 引入Java 8时,我们可以在接口中使用默认方法. 此功能的主要驱动程序是允许接口扩展,同时保留对旧接口版本的向后兼容性. 一个示例是在现有Collection类中引入stre ...

  10. java中类型转换的造型_Java总结篇系列:类型转换/造型

    Java中,经常可以遇到类型转换的场景,从变量的定义到复制.数值变量的计算到方法的参数传递.基类与派生类间的造型等,随处可见类型转换的身影.Java中的类型转换在Java编码中具有重要的作用. 首先, ...

最新文章

  1. Shiny平台构建与R包开发(三)——数据输出
  2. 没完没了的Cookie,读懂asp.net,asp等web编程中的cookies
  3. 步步为营(十六)搜索(二)BFS 广度优先搜索
  4. Linux系统目录结构,文件类型以及ls、alias命令
  5. HMM学习(3)-Patterns generated by a hidden process
  6. 系统服务管理与控制程序(Init System/初始化系统)-- Systemd 的 Unit 配置文件详解
  7. iLogtail 与Filebeat 性能对比
  8. Java文件保存与删除工具类
  9. 为什么 0.1 + 0.2 = 0.300000004
  10. k8s 查看pod流量_Kubernetes K8S之Pod生命周期与探针检测
  11. 完了!Oracle 被虐!MySQL 登顶 Top1!原来这么多人都在用
  12. javascript call 详细解答与实践
  13. 将自己的姿态放低:你应具备赚钱以外的四种能力
  14. 开源BI工具对比(二):宜信 davinci
  15. C语言知识点笔记完全整理
  16. 未来智慧园区白皮书(2022年) 附下载
  17. matlab中abs函数,matlababs是什么意思 是是是什么意思
  18. Flutter 城市/通讯录列表字母索引联动效果实现
  19. win10系统开机自动修复失败的解决方法
  20. 蚂蚁庄园运动会登山赛!3d项目入门实战!Cocos Creator 3D!

热门文章

  1. es java字段匹配多个值_es multiMatchQuery多字段匹配异常
  2. carla安装之clang版本问题
  3. LeetCode-203:移除链表元素
  4. python selenium爬虫需要账号和密码登陆的网页_如何使用selenium和requests组合实现登录页面...
  5. display内联属性
  6. java程序包不存在_idea Error:(3, 32) java: 程序包***不存在的问题
  7. matlab std函数_如何利用Matlab进行小波分析
  8. python打开控制台运行_如何在IPython控制台中默认运行文件而不是终端?
  9. maven仓库的安装与配置
  10. 3_python基础—运算符 2