一个输入不起作用,而其余的则有效

用户必须输入购买总金额和年龄,然后计算最终付款。


如果总金额达到或超过 100 美元,可享受总价 20% 的折扣。如果年龄为 65 岁或以上,则总价可享受 10% 的折扣。


double discount1 = 0.10;

double discount2 = 0.20;

double totalPrice = 0.0;

double finalPrice = 0.0;


System.out.print("Enter total amount: ");

double purchase = input.nextDouble();

System.out.print("Enter age: ");

int age = input.nextInt();


if (purchase >= 100) {

  totalPrice = purchase * discount2;

  finalPrice = purchase - totalPrice;

  System.out.print("The final amount is $" + finalPrice);

}

else if (purchase < 100 && age < 65) {

  System.out.println("The final amount is $" + purchase);

}

else if (age >= 65) {

  totalPrice = purchase * discount1;

  finalPrice = purchase - totalPrice;

  System.out.print("The final amount is $" + finalPrice);

}

用户输入 200 作为总金额,输入 75 作为年龄。输出应该是 140.00 美元。但是,我收到的输出为 160.00 美元。


眼眸繁星
浏览 120回答 3
3回答

浮云间

我的方法是将所有折扣加在一起,然后在最后相乘一次。如果需要的话您可以添加其他折扣double totalDiscount = 0.0;if (purchase >= 100) {&nbsp; totalDiscount += discount2;}if (age >= 65) {&nbsp; totalDiscount += discount1;}totalPrice = purchase * (1.0 - totalDiscount);System.out.print("The final amount is $" + totalPrice);

交互式爱情

第一个 if 语句将首先执行。因为价格在100以上。所以其他语句不会被执行。尝试更改 if 表达式,因为这就是它没有给出您可能期望的结果的问题

潇潇雨雨

您需要更改以下代码,因为当价格超过 100 时,它将首先运行 if 块,并且不会进入最后一个块。所以按以下方式更改它:-if (purchase >= 100 && age < 65) {&nbsp; totalPrice = purchase * discount2;&nbsp; finalPrice = purchase - totalPrice;&nbsp; System.out.print("The final amount is $" + finalPrice);}else if (purchase < 100 && age < 65) {&nbsp; System.out.println("The final amount is $" + purchase);}else if (purchase < 100 &&age >= 65) {&nbsp; totalPrice = purchase * discount1;&nbsp; finalPrice = purchase - totalPrice;&nbsp; System.out.print("The final amount is $" + finalPrice);}else if (age >= 65) {&nbsp; totalPrice1 = purchase * discount2;&nbsp; totalPrice = purchase * discount1;&nbsp; finalPrice = purchase - totalPrice - totalPrice1 ;&nbsp; System.out.print("The final amount is $" + finalPrice);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java