0

当我尝试编译该类时,我的 BlueJ IDE 显示此错误。我看不出我做错了什么。

在此处输入图像描述

4

4 回答 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 回答