可能尚未在我的For循环中初始化局部变量

时间:2014-12-01 21:09:30

标签: java

尝试创建一个用户输入6个数字的for循环。然后验证每个数字以确定它是正数。然后将它们全部加起来进行小计。

在我的最后一行count += itemPrice;我在count上收到错误,说“本地变量可能尚未初始化”。我的一个伙伴似乎也无法弄清楚为什么会这样,并且想知道那是什么。

public static double namehere() {
double count;
for (int x = 0; x < 6; x++)
{
    Scanner input = new Scanner (System.in);
    System.out.println ("Price of Item: ");
    double itemPrice = input.nextDouble();
    while (itemPrice < 0.01)
    {
        Scanner input2 = new Scanner (System.in);
        System.out.println ("Price of Item: ");
        itemPrice = input.nextDouble();
    }
    count += itemPrice;
}

3 个答案:

答案 0 :(得分:3)

double count;      // not initialized

double count = 0;  // initialized

默认情况下,本地原始变量不设置为0,因此必须显式初始化它们。

答案 1 :(得分:2)

如错误消息所示,您的count变量未初始化。要解决错误,请使用默认值进行初始化,例如0

注意:局部变量不是隐式初始化的,不像类成员那样。

答案 2 :(得分:1)

局部变量的目的不同于实例变量的目的。局部变量可用作计算的一部分;实例变量包含状态。如果您使用局部变量而不为其赋值,那几乎肯定是逻辑错误,因此,编译器会抱怨..