[英]Initializing a variable in an if-statement in java?
我不斷收到錯誤變量F3,可能未在您看到的最后一行代碼中初始化。
我究竟做錯了什么?
{
Float F1,F2, F3;
F1 = Float.parseFloat(
JOptionPane.showInputDialog("Enter a number and press ok."));
F2 = Float.parseFloat(
JOptionPane.showInputDialog("Enter a second number and press ok."));
if(F1 >= F2)
{
F3=(F1 * F2) + (F1 * 2);
}
if(F2 >= F1)
{
F3 =(F1 + F2) + (F2 * 5);
}
DecimalFormat dec = new DecimalFormat("##.##");
JOptionPane.showMessageDialog(null,"Your calculations are:" +(F3),"Caculations", JOptionPane.INFORMATION_MESSAGE);
您可能應該在此處使用if / else而不是if / if,以便編譯器知道F3
將始終設置為一個值。
以下代碼等效於您的if / if語句:
if(F1 > F2) //The = here will always be overridden by the other if clause in your original statement so it's redundant.
{
F3=(F1 * F2) + (F1 * 2);
}
else
{
F3 =(F1 + F2) + (F2 * 5);
}
您的代碼等效於:
if(F1 > F2) {
F3 = (F1 * F2) + (F1 * 2);
} else {
F3 = (F1 + F2) + (F2 * 5);
}
這應該使錯誤消失。
聲明變量F3時,請為其分配空值。 由於您的if條件,可能會導致此變量不會被分配任何值
嘗試這個
Float F1=0,F2=0, F3=0;
最好的方法是使用if-else語句,並且不要將null賦給變量。 If-else語句更適合人類和編譯器。 分配null是沒有意義的,並且使編譯器無法檢查未初始化的問題以進行將來的修改,如果不進行檢查,則可能會收到NullPointerException。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.