我是java的新手,我的if
语句似乎没有为变量赋值。我真的很感激一些帮助。输出始终为1000
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 :(得分:3)
在最后一个if语句后面有一个分号,这意味着无论如何,奖金都会设置为1000.
删除它,一切都应该没问题。
答案 1 :(得分:1)
您当前的代码可以简化为一个if
块(使用嵌套的if-else
),您已经初始化bonus
到0
- 所以你不要#39; t需要再次明确地再做一次。
// Defines amount and bonus
double amount = Double.parseDouble(txtAmountEarnt.getText());
double bonus = 0;
if (amount > 2499) {
if (amount > 5000) {
bonus = 1000;
} else {
bonus = 500;
}
}