繁体   English   中英

变量值在if语句中显示

[英]Variable value playing up in if statement

我对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)));

最后一个if语句后有一个分号,这意味着无论如何奖金都会设置为1000。

删除它,一切都很好。

您当前的代码可以简化为一个if块(带有嵌套的if-else ),您已经将bonus初始化为0 ,因此您无需再次明确地执行它。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM