2017-03-16 21 views
0

我對java很新,我的if語句似乎沒有將值賦值給變量。我真的很感謝一些幫助。輸出始終是1000變量值在if語句中起作用

DecimalFormat df = new DecimalFormat("#.00"); 

    // Defines amount and bonus 
    double amount; 
    double bonus; 

    bonus = 0; 

    amount = Double.parseDouble(txtAmountEarnt.getText()); 

    if (amount <= 2000) { 
     bonus = 0; 
    } 
    if (amount >2499 && amount <5000) { 
     bonus = 500; 
    } 
    if (5000 < amount); { 
     bonus = 1000; 
    } 

    System.out.println(bonus); 
    lblBonusAwarded.setText("Bonus awarded for earning $" + (df.format(amount)) + " = $" + (df.format(bonus))); 
+0

那麼,什麼是完整的輸出? –

+0

什麼是輸入和相應的輸出 –

+2

如果'amount'在2001到2499之間,會發生什麼? –

回答

3

有後,這意味着獎金的最後一個if語句,被設置爲1000無論什麼分號。

刪除它,一切都應該沒問題。

1

您當前的代碼可以簡化爲一個if塊(與嵌套if-else),你已經初始化bonus0 - 這樣你就不會需要明確地做一遍。

// Defines amount and bonus 
double amount = Double.parseDouble(txtAmountEarnt.getText()); 
double bonus = 0; 
if (amount > 2499) { 
    if (amount > 5000) { 
     bonus = 1000; 
    } else { 
     bonus = 500; 
    } 
}