日期:2014-05-20  浏览次数:20853 次

书上题目 04-16
题目:从键盘输入成绩,90-100为A,80-89为B,70-79为C,60-69为D,不及格为E。
问题:如果光是输入数字是可以实现,但是考虑到有其他字符也同样可以输入,如何针对其他不同字符处理不同情况呢。
  比如:输入A-Z,提示输入错误。
  输入a-z,提示错误等。

请教各位了

------解决方案--------------------
Java code

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        try {
            scan.nextInt();
        } catch (RuntimeException e) {
            System.out.println("输入的并非全数字.");
        }
    }

------解决方案--------------------
注意Integer.parseInt和Scanner.nextInt只作整数验证,如需进一步验证可判断输入值:
Java code

    public static void main(String args[]) {
        Scanner input=new Scanner(System.in);
        int score=0;
        
        System.out.print("请输入XX的成绩:");
        try {
            score=input.nextInt();
            
            if(score<0||score>100)
                throw new InputMismatchException();
        } catch (InputMismatchException ex) {
            System.out.println("输入必须为0-100之间的整数!");
            System.exit(0);
        }
        
        System.out.print("XX的成绩级别为:");
        if(score<60)
            System.out.println("E");
        else if(score<70)
            System.out.println("D");
        else if(score<80)
            System.out.println("C");
        else if(score<90)
            System.out.println("B");
        else
            System.out.println("A");
    }