题目的主要信息:

  • 现有如下成绩等级A,B,C,D,其中A代表优秀,B代表良好,C代表及格,D代表不及格
  • 根据输入的字母等级输出相应中文分级
  • 如果出现错误输入提示未知等级

具体做法:

对于多路径选择的问题,我们可以用switch-case来解决,switch中的变量就是我们比较的变量,它会与每个case中的值逐一比较(先后顺序),进入相等的case后面的代码块。我们可以在将case的值设置成"A"、"B"、"C"、"D",来输出相应等级。最后处理上述四个等级都不是情况,用default解决。

A B C D 其他输入
优秀 良好 及格 不及格 未知等级

alt

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String grade =scanner.next();
        switch(grade){ //利用switch判断grade等于哪个等级
            case "A":
                System.out.println("优秀"); break;
            case "B": 
                System.out.println("良好"); break;
            case "C":
                System.out.println("及格"); break;
            case "D":
                System.out.println("不及格"); break;
            default: //排除上述四个等级就是未知
                System.out.println("未知等级");
        }
    }
}

复杂度分析:

  • 时间复杂度:O(1)O(1),switch-case属于判断语句,常数时间
  • 空间复杂度:O(1)O(1),无额外空间