本地变量可能尚未在我的For循环中初始化
试图在用户输入6个数字的情况下创建for循环。然后验证每个数字以确定它是否为正数。然后他们全部加起来作为小计。本地变量可能尚未在我的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;
}
由于错误消息说,你count
变量未初始化。要解决该错误,请使用默认值进行初始化,如0
。
注意:局部变量不是隐式地初始化,不像类成员。
double count; // not initialized
double count = 0; // initialized
默认情况下,本地基元变量未设置为0,因此它们必须显式初始化。
局部变量的用途不同于实例变量的用途。局部变量可以用作计算的一部分;实例变量在那里包含状态。如果你使用一个局部变量而没有赋值,这几乎肯定是一个逻辑错误,因此,编译器会抱怨..
如果它是实例变量,如果没有初始化,那么也会出现错误 – realUser404 2014-12-01 21:18:37
不,在实例变量的情况下,不会有任何错误,因为JVM在创建对象时初始化所有实例变量。 – 2014-12-01 21:21:24
我不知道,谢谢你的信息 – realUser404 2014-12-01 21:23:23
你需要给你的计数默认值。在这里,我建议0. – realUser404 2014-12-01 21:11:40
你的方法需要一个'count'上的return语句需要一个默认值。 – 2014-12-01 21:13:06
可能的重复[如何避免'局部变量可能未被初始化'?](http://*.com/questions/1585513/how-to-avoid-the-local-variable-may-not-have -been-initialized) – 2014-12-01 21:13:50