题解 | #判断学生成绩#

判断学生成绩

http://www.nowcoder.com/practice/a35cbafbec10449f8a576e822430a3ab

题目的主要信息:

  • 对于考试成绩在0-100之间的直接输出
  • 不满足就产生一个自定义异常,控制台输出一个错误信息"分数不合法"

具体做法:

我们查看自定义异常,需要一个构造函数,根据抛入的错误信息是字符串,我们直接用字符串构造这个异常,同时用super调用父类的函数构造。

在if判断成绩之前加入try-catch的异常处理语句,判断分数是否在0-100,如果在直接输出分数,否则抛出一个错误信息为"分数不合法"(字符串)的异常,处理异常部分即catch部分,直接用异常父类的getMessage方法获取异常信息,输出即可。

alt

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int score = scanner.nextInt();
        try{
            if(score >= 0 && score <= 100) //正常分数输出
                System.out.println(score);
            else
                throw new ScoreException("分数不合法"); //抛出异常
        }
        catch(ScoreException str){
            System.out.println(str.getMessage()); //输出异常
        }
    }
}

class ScoreException extends Exception{ //继承自异常类的分数异常处理类
    public ScoreException(String message){ //构造函数
        super(message); //输入异常信息
    }
}

复杂度分析:

  • 时间复杂度:O(1)O(1),异常处理,直接输出,常数时间
  • 空间复杂度:O(1)O(1),无额外空间
孤帆远影碧空尽 文章被收录于专栏

牛客网各类题单题解~

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-24 12:26
点赞 评论 收藏
分享
06-11 14:15
已编辑
门头沟学院 后端
田心今心:打招呼改一下,把实习半年以上随时到岗放第一行,因为ssob的hr不点击看的时候只能看前面几个字,你前面几个字hr获取不到什么信息,也就不会点进来看
点赞 评论 收藏
分享
评论
21
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务