【问题标题】:error: variable total might not have been initialized错误:变量总计可能尚未初始化
【发布时间】:2021-04-11 04:45:45
【问题描述】:

我收到此错误,但是当我使用 0 对其进行初始化时,我的 amountToPay 文本字段中总是得到答案 0 并且不计算 if 语句,请帮助我。我想在 amountToPay 文本字段中显示两个文本字段的结果/总和。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        
    int total;
       
            
    if (productCode.equals("1")){
    total = Integer.parseInt(quantity.getText()) * 250;
    }else if (productCode.equals("2")){
    total = Integer.parseInt(quantity.getText()) * 200;
    }else if (productCode.equals("3")){
    total = Integer.parseInt(quantity.getText()) * 500;
    }else if (productCode.equals("4")){
    total = Integer.parseInt(quantity.getText()) * 100;
    }
    amountToPay.setText(String.valueOf(total));   
}

【问题讨论】:

    标签: java variables


    【解决方案1】:

    您收到此错误是因为如果 productCode 的实际值不是已处理的值之一("1""2""3""4"),变量 total 将不会被初始化。当productCode"5" 或空字符串"" 时,您希望代码执行的操作尚不清楚。

    更好的方法是使用switch 语句。这将帮助您解决手头的问题通过显式处理 default 案例(当不期望 productCode 值时)使您的代码更具可读性。

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    
            int total;
    
            switch (productCode) {
                case "1":
                    total = Integer.parseInt(quantity.getText()) * 250;
                    break;
                case "2":
                    total = Integer.parseInt(quantity.getText()) * 200;
                    break;
                case "3":
                    total = Integer.parseInt(quantity.getText()) * 500;
                    break;
                case "4":
                    total = Integer.parseInt(quantity.getText()) * 100;
                    break;
                default:
                    Logger.getLogger(this.getClass()).log(Level.WARNING, "Unhandled product code: " + productCode);
                    total = 0;//A default value when productCode value is not expected/handled
                    break;
            }
            amountToPay.setText(String.valueOf(total));
        }
    

    【讨论】:

      猜你喜欢
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多