Java 一个“简单”的分数评级

一个简单的程序  输入分数判断输出“不及格”,“及格”,“良”,“优”,等几个等级,很快就写出来了

package score1;
import java.util.Scanner;
public class test {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个数");
        int a=sc.nextInt();
        getscore(a);
    }

    public static void getscore(int a) {
        if(a>=0&&a<60) {System.out.println("不及格");}
        if(a>=60&&a<80) {System.out.println("及格");}
        if(a>=80&&a<90) {System.out.println("良");}
        if(a>=90&&a<=100) {System.out.println("优");}
        
        
    }
    

}

运行后就是这样

 

但是如果一旦输入的不是数字或者不是分数就会报错或是没有反应

 全是数字便没有任何函数进行,

 

 

 

 

输入非int型的值便会直接报错。显然这种方式对于不知道程序内容的人来说很容易出现报错的情况,将报错的情况减到最小才是最难的

package score;
import java.util.Scanner;
public class Ka {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        while(true) {
       System.out.println("请输入一个整数: ");
       String a=sc.next();
       if(test01(a)) {
           
           System.out.println("输入错误");
           }
       else test02(a);
       
    }
    }

    public static void test02(String a) {
        int x=Integer.parseInt(a);
        if(x>=0&&x<60)System.out.println("不及格");
        if(x>=60&&x<80)System.out.println("及格");
        if(x>=80&&x<90)System.out.println("良");
        if(x>=90&&x<=100)System.out.println("优");    
    }

    public static boolean test01(String a) {
         if(a.equals("100")) {
             System.out.println("这是100");
             return false;}
         if(a.length()>2) {return true;} 
         if(a.length()==1) {
             if(panduan(a.charAt(0))) {return true;}
         }
         if(a.length()==2) {
             if(panduan(a.charAt(0))||panduan(a.charAt(1))) {return true;}
         }
         return false;
    }

    public static boolean panduan(char a) {
        if((a>32&&a<47)||(a>58&&a<126))
        return true;
        else return false;
    }
        
}

 

 这个就是改良后的代码,当遇到不符合分数范围的值输出“输入错误”,所以输入的值类型为String 型

posted @ 2021-10-30 20:03  Rebz  阅读(197)  评论(0编辑  收藏  举报