题意整理。

  • 定义一个方法录入学生的成绩,如果在指定范围,直接输出,否则产生一个自定义异常,控制台输出“分数不合法”。

方法一(try、catch捕获异常)

1.解题思路

  • 利用try、catch语句捕获异常,如果在正常范围,直接输出,否则抛异常。
  • 通过父类构造函数初始化打印信息,然后如果捕获到异常,输出错误信息。

图解展示: alt

2.代码实现

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int score = scanner.nextInt();

        try{
            //如果考试成绩在0-100之间,直接输出
            if(score>=0&&score<=100){
                System.out.println(score);
            }
            //否则抛异常
            else{
                throw new ScoreException("分数不合法");
            }
        }
        //捕获到异常,输出错误信息
        catch(ScoreException e){
            System.out.println(e.getMessage());
        }
    }
}

class ScoreException extends Exception{

    //利用父类构造方法,初始化信息
    ScoreException(String message){
        super(message);
    }

}

3.复杂度分析

  • 时间复杂度:只需一次逻辑判断,所以时间复杂度为O(1)O(1)
  • 空间复杂度:不需要额外的空间,所以空间复杂度为O(1)O(1)