【问题标题】:how do I get the input to read as a 0 even if there is no user input即使没有用户输入,如何让输入读取为 0
【发布时间】:2021-12-06 19:59:54
【问题描述】:

我有一个学校作业的代码,因为它不符合我的教授标准,所以我失败了。即使只有两个框中的一个输入,我也无法弄清楚如何让程序运行。如果一个框留空,它会转到捕获并显示错误消息“请输入有效数字”。我可能正在考虑为用户输入创建一个 arrayList 并将其添加在一起?

这是盒子的sn-p代码:


    JButton creditButton = new JButton("CREDIT");
        creditButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
                double num1=0, num2=0, balance=0;
                
                try {
                    num1 = Double.parseDouble(creditInput.getText());
                    num2 = Double.parseDouble(debitInput.getText());
                    balance = num1 - num2;
                    
                    totalBalance.setText("$" + Double.toString(balance));
                }catch(Exception e2) {
                    
                    JOptionPane.showMessageDialog(null, "Please Enter A Valid Number");
                }
                
            }
        });
        
        JButton debitButton = new JButton("DEBIT");
        debitButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                
double num1=6, num2=6, balance=0;
                
                try {
                    num1 = Double.parseDouble(creditInput.getText());
                    num2 = Double.parseDouble(debitInput.getText());
                    balance = num1 - num2;
                    
                    totalBalance.setText("$" + Double.toString(balance));
                }catch(Exception e2) {
                    
                    JOptionPane.showMessageDialog(null, "Please Enter A Valid Number");
                }
            }
        });
        
        JButton clearButton = new JButton("CLEAR");
        clearButton.addActionListener(new ActionListener() {
            
            public void actionPerformed(ActionEvent e) {
                creditInput.setText("");
                debitInput.setText("");
                }
        });

【问题讨论】:

  • 正如所写的,异常处理过于宽泛,因为它同时涵盖了两个输入。隔离每个输入。如果有解析异常,您需要知道为什么有异常,这只能通过查看输入并查看字符串表示是否为有效数字来完成,例如,如果需要,空字符串可以是 0,但 abc 仍然应该是一个错误。
  • (我认为空输入会是一个错误,但这既不是这里也不是那里。)
  • @DaveNewton 好的。所以我很抱歉,因为我对此很陌生,但我认为您所说的是我需要知道存在异常,因为如果有人尝试输入有效数字以外的内容,则需要弹出错误。包罗万象:catch(Exception e2) 还不够好,因为如果那里什么都没有,它就不会运行。所以我也尝试了ArithmeticException e ,但这给了我编码中的实际错误。

标签: java try-catch


【解决方案1】:

检查输入是否为空,是否设置为0

    if(creditInput.getText() == null){
        num1 = 0.0;
    }else{
        num1 = Double.parseDouble(creditInput.getText());
    }
    if(debitInput.getText() == null){
        num2 = 0.0;
    }else{
        num2 = Double.parseDouble(debitInput.getText());
    }
    balance = num1 - num2;

【讨论】:

    猜你喜欢
    • 2017-03-25
    • 2023-03-11
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    相关资源
    最近更新 更多