我嘗試編譯該類時,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