题意整理。
- 定义一个方法录入学生的成绩,如果在指定范围,直接输出,否则产生一个自定义异常,控制台输出“分数不合法”。
方法一(try、catch捕获异常)
1.解题思路
- 利用try、catch语句捕获异常,如果在正常范围,直接输出,否则抛异常。
- 通过父类构造函数初始化打印信息,然后如果捕获到异常,输出错误信息。
图解展示:
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.复杂度分析
- 时间复杂度:只需一次逻辑判断,所以时间复杂度为。
- 空间复杂度:不需要额外的空间,所以空间复杂度为。