switch 根据键盘录入成绩 显示分数及判断等级(第二次)

来源:互联网 发布:喜欢安静的男生知乎 编辑:程序博客网 时间:2024/05/21 06:24

//输入101或1-9都会提示错误,好像代码好多if优化求优化方法

package Day;


import java.util.Scanner;

public class Test_09 {
// 需求分析:根据成绩的范围80-89、70-79规则,通过判断十位上的数字执行对应的case输出
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
do {
System.out.print("请输入成绩:");
int i = sc.nextInt();
if (i >= 10 & i<=100) {// 如果大于等于10且小于等于100就执行下面的,否则提示 "输入错误!"
switch (i / 10 % 10) {// 这里获取的值是获取十位上的数
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("成绩是:" + i + "等级E");
break;
case 6:
if (i == 60 | i <= 69) {
System.out.println("成绩是:" + i + "等级D");
}
break;
case 7:
System.out.println("成绩是:" + i + "等级C");
break;
case 8:
System.out.println("成绩是:" + i + "等级B");
break;
case 9:
if (i >= 90) {
System.out.println("成绩是:" + i + "等级A");
} else {
System.out.println("输入异常");
}
break;
default:
if (i == 100) {// 使用default的特性,才能在此实现判断100
System.out.println("成绩是:" + i + "等级A");
}else{
System.out.println("输入错误!");
}
}//switch
}else{//if
System.out.println("输入错误!");
}
System.out.println("是否继续? y/n :");
}while (sc.next().charAt(0) == 'y');

}
}