首页 > 解决方案 > 变量可能尚未初始化。解决这个问题的最佳方法是什么?

问题描述

当我声明一个双变量时,我是否需要一直为每个变量分配一个值?我之所以这么问,是因为我试图运行下面的代码而不向 double var 添加任何值,但它说该变量未初始化。当我将值 0 添加到每个变量时,它会起作用。那么我是否必须一直为这些变量添加值?

    public static double taxSingleCalculation (){

    double taxbracket1 = 0, taxbracket2 = 0, taxbracket3 = 0, taxbracket4 = 0, taxbracket5 = 0, taxbracket6 = 0,taxbracket7 = 0;

        if (income <=9950) {
            taxbracket1 = income * taxRate10;
        }
        else{
            taxbracket1 = 9950*taxRate10;
        }

编译错误如下:

C:\Users\src\estimation.java:97:35
java: variable taxbracket2 might not have been initialized

标签: java

解决方案


你得到“变量 taxbracket2 可能没有被初始化”的原因是你在方法textbracket2代码的看不见的部分中使用了taxSingleCalculation。您声明的每个变量在使用之前都必须明确分配一个值。

有几个选项可以解决这个问题:

  1. 如果方便的话,暂时注释掉使用未赋值变量的代码;
  2. 继续添加为变量分配“正确”值的代码(无论如何你最终都会这样做,对吧?);
  3. 做你所做的:为声明中的每个变量分配一个合理的“虚拟”初始值(例如零),并理解这个虚拟值最终将被适当的“真实”值替换。

至于最好的方法:我个人会投票给#2(现在没有时间,嗯?),但这完全取决于你。


推荐阅读