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 型