zoukankan      html  css  js  c++  java
  • 异常处理

    编写一个程序,此程序在运行时要求用户输入一个 整数,代表某门课的考试成绩,程序接着给出“不及格”、“及格”、“中”、“良”、“优”的结论。 要求程序必须具备足够的健壮性,不管用户输入什 么样的内容,都不会崩溃。

    程序源代码:

    复制代码
    import javax.swing.JOptionPane;
    
    public class Grade {
        //静态方法用来输出结果对话框
        public static void showDialog(String str)
        {
            JOptionPane.showMessageDialog(null, str,"成绩等级",JOptionPane.INFORMATION_MESSAGE);
        }
        public static void main(String[] args) {
            try {
                //通过对话框输入分数
                String in = JOptionPane.showInputDialog(null,"请输入学生成绩:");
                int grade = Integer.parseInt(in);//将输入的分数变成int型
                if(grade>=0&&grade<60)
                {
                    showDialog("不及格");
                }
                else if(grade>=60&&grade<70)
                {
                    showDialog("及格");
                }
                else if(grade>=70&&grade<80)
                {
                    showDialog("中");
                }
                else if(grade>=80&&grade<90)
                {
                    showDialog("良");
                }
                else if(grade>=90&&grade<=100)
                {
                    showDialog("优");
                }
                else
                {
                    throw new Exception();//输入的是整数,但超出0~100的范围
                }
            }catch(Exception e) {
                JOptionPane.showMessageDialog(null,"输入错误!");//输入的不是整数
            }
        }
    
    }
    复制代码

    程序运行结果:

    错误分析:

    之前尝试了一下不转换成int型直接利用String类型中的compareTo方法进行比较,但是如果输入个位数或者100的话,会出现异常,因为是和60,70等两位数比较.compareTo的代码如下图:

    其返回的是第一个不相等的字符的差,假设输入100的话,执行100.compare(60),字符串100和60相比返回的是-5,所以输出会出错

  • 相关阅读:
    selenium2基本控件介绍及其代码
    selenium2元素定位Xpath和cssSelector
    Selenium2启动浏览器且加载插件
    bash之条件测试if/else
    bash脚本编写基础
    Android后台的linux一直保持唤醒状态,不进入睡眠
    Linux任务计划、周期性任务执行
    C#进阶系列——WebApi 跨域问题解决方案:CORS(转载)
    linq group by
    echart 分组属性
  • 原文地址:https://www.cnblogs.com/tianzeyangblog/p/7846874.html
Copyright © 2011-2022 走看看