Один вход не работает, а остальные - - PullRequest
0 голосов
/ 22 сентября 2019

Пользователь должен ввести общую сумму покупки и сколько ему лет, а затем рассчитать окончательный платеж.

Если общая сумма составляет 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 $.

Ответы [ 3 ]

1 голос
/ 22 сентября 2019

Первый оператор if будет выполнен первым.Потому что цена выше 100. Таким образом, другие заявления не будут выполнены.Попробуйте изменить выражения if из-за того, что проблема заключается в том, что он не дает ожидаемого результата

1 голос
/ 22 сентября 2019

Мой подход состоит в том, чтобы сложить все скидки вместе, а затем умножить один раз в конце.

Чем вы можете добавить другие скидки, если это необходимо

double totalDiscount = 0.0;

if (purchase >= 100) {
  totalDiscount += discount2;
}
if (age >= 65) {
  totalDiscount += discount1;
}

totalPrice = purchase * (1.0 - totalDiscount);
System.out.print("The final amount is $" + totalPrice);
0 голосов
/ 22 сентября 2019

Вам необходимо изменить приведенный ниже код,

, потому что когда цена превышает 100, она запускается первой, если блок, и не войдет в последний блок.

, поэтому измените его следующим образом: -

if (purchase >= 100 && age < 65) {
  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 (purchase < 100 &&age >= 65) {

  totalPrice = purchase * discount1;
  finalPrice = purchase - totalPrice;
  System.out.print("The final amount is $" + finalPrice);
}
else if (age >= 65) {
  totalPrice1 = purchase * discount2;
  totalPrice = purchase * discount1;
  finalPrice = purchase - totalPrice - totalPrice1 ;
  System.out.print("The final amount is $" + finalPrice);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...