我尝试编译该类时,My BlueJ IDE显示此错误。我看不到我做错了什么。Java变量可能没有被初始化?
回答
在if块的内部使用变量之前,需要对它进行初始化。
试试这个:
double albedo=0;
相反的:
double albedo;
但是要记住,你的变量将保持0,如果您还没有指定一个else块你的条件返回false。
谢谢,这工作完美! – ninopino1
这会导致编译错误消失,但会造成误导,并不能真正解决原始逻辑问题。没有必要在声明点初始化一个Java变量。在尝试使用该值之前,有必要分配一个值。这里有两个代码路径,一个访问if块的内部,另一个不访问。如果if条件为真,则分配一个值,否则不分配。 “否则不是”导致编译错误。顺便说一句,if条件在这里永远不会是真的,因为没有数字既不低于-50也不高于+50。 –
局部变量应该值初始化使用它.Something这样前:
double albedo = 0.0;
编译器会抱怨,因为局部变量没有分配任何默认值。因此,在运行时如果if()
条件失败,那么变量将不会被赋值,在这种情况下,运行时应该返回给函数的调用者什么值?因此用一些默认值初始化它。
只是阅读这个答案,它解释了为什么错误是完美的,非常感谢你的明确解释,我不敢相信我没有想到这一点! – ninopino1
这是一个私有方法,局部变量不会得到默认值,它们必须被初始化。 考虑一个情况,如果块没有进入控制,那么你的变量不包含任何值,因此错误。
- 1. Java变量可能未被初始化
- 2. Java:变量的捕捉异常可能没有被初始化
- 3. 变量potas可能没有初始化
- 4. 变量可能未被初始化?
- 5. 变量可能未被初始化
- 6. 一些变量可能没有被初始化?为什么?
- 7. 变量可能没有被初始化(边缘权重图)
- 8. Android的 - 局部变量TST可能没有被初始化
- 9. 呼叫变量,但它可能没有被初始化
- 10. 变量“studentNumber”和“passWord”可能没有被初始化?
- 11. 局部变量GCD可能没有被初始化
- 12. {DCC Warning} W1036变量'$ frame'可能没有被初始化?
- 13. 局部变量n可能没有被初始化
- 14. 错误:局部变量罐可能没有被初始化
- 15. 本地变量可能没有被初始化的问题?
- 16. Java - 变量可能未初始化
- 17. Valriable可能没有被初始化?
- 18. 为什么Java说我的变量在初始化时没有被初始化?
- 19. 有没有解决局部变量的方式可能没有被初始化
- 20. 无法编译Java错误变量可能未被初始化
- 21. Java错误变量可能未被初始化
- 22. Java中的变量可能未被初始化错误
- 23. 变量未被初始化
- 24. 错误:可能的数据可能没有被初始化
- 25. 插座() - 错误:变量客户端可能没有初始化
- 26. 德尔福变量可能没有初始化警告
- 27. 变量指数可能没有初始化的问题
- 28. 为什么它总是告诉我“变量卡可能没有被初始化”
- 29. 变量初始化并声明后可能尚未初始化
- 30. java变量未初始化
这是什么语言? –
@Felix Kling:可能是Java,但我不确定。 – NINCOMPOOP
简单:如果'temp> -50 ||函数返回什么温度<50℃? – Patashu