当我尝试编译该类时,我的 BlueJ IDE 显示此错误。我看不出我做错了什么。
问问题
14109 次
4 回答
2
在您可以在 if 块中使用变量之前,您需要对其进行初始化。
尝试这个 :
double albedo=0;
代替 :
double albedo;
请记住,如果您的条件返回 false,您的变量将保持为 0,因为您没有指定 else 块。
于 2013-05-27T11:45:11.437 回答
2
如果 if 子句中的条件不成立,则不分配变量。在这种情况下,后面的返回引用了一个未初始化的变量。
于 2013-05-27T11:42:39.167 回答
1
这是一个私有方法,局部变量没有默认值,它们必须被初始化。考虑一个控制没有进入 if 块的情况,那么你的变量不包含任何值,因此错误。
于 2013-05-27T11:44:07.243 回答
0
局部变量在使用之前应该用值初始化。像这样的东西:
double albedo = 0.0;
编译器会抱怨,因为默认情况下没有为局部变量分配任何值。因此,在运行时,如果if()
条件失败,则不会为变量分配任何值,在这种情况下,运行时应该将什么值返回给函数的调用者?因此用一些默认值初始化它。
于 2013-05-27T11:41:29.050 回答