Java 变量可能尚未初始化。解决这个问题的最好办法是什么?

Java 变量可能尚未初始化。解决这个问题的最好办法是什么?,java,Java,当我声明一个双变量时,我是否需要始终为每个变量指定一个值?我这样问是因为我试图运行下面的代码,而不向double var添加任何值,但它说变量没有初始化。当我将值0添加到每个变量时,它会起作用。那么我是否必须一直向这些变量添加值 public static double taxSingleCalculation (){ double taxbracket1 = 0, taxbracket2 = 0, taxbracket3 = 0, taxbracket4 = 0, taxbr

当我声明一个双变量时,我是否需要始终为每个变量指定一个值?我这样问是因为我试图运行下面的代码,而不向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;
        }

如果您计划在代码中使用原语变量,那么是的,您需要初始化它们

注意:使用数组而不是“编号变量”

获得“变量taxbracket2可能尚未初始化”的原因是您在
taxSingleCalculation
方法的代码的不可见部分使用了
textbracket2
。在使用之前,您声明的每个变量都必须被明确地赋值

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

  • 如果方便的话,暂时注释掉使用未赋值变量的代码
  • 只需添加代码,为变量指定“正确”的值(不管怎样,您最终都会这样做,对吧?)
  • 完全按照您所做的操作:为声明中的每个变量指定一个合理的“伪”初始值(如零),并理解该伪值最终将被相应的“实”值替换

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

    奇怪的是,
    taxbracket2
    在你的代码中清楚地显示为
    0
    初始化。只有在尝试使用此变量时才会出现此错误。看到这一点可能会有所帮助。非常有趣。我试试看。谢谢你,是的。我会选择你的2号解决方案,因为这似乎是解决这个问题的最快方法。非常感谢。
    C:\Users\src\estimation.java:97:35
    java: variable taxbracket2 might not have been initialized