首页 > Java教程 > Java异常处理 阅读:5,486

Java计算平均成绩

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

根据题目要求得知,在程序中需要对多种异常情况进行不同的处理。此时就用到了在《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交流群:739993120(我们会不定期在群内分享Java知识,上传Java资料)

编程帮,一个分享编程知识的公众号。跟着站长一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注「编程帮」,你已然超越了90%的程序员!

编程帮二维码
微信扫描二维码关注