-2
votes

Une entrée ne fonctionne pas, tandis que le reste fait

L'utilisateur doit saisir le montant total d'achat et quel âge ils sont, puis calculez le paiement final.

Si le montant total est de 100 $ ou plus, il y a une réduction de 20% sur le prix total. Si l'âge est de 65 ans ou plus, il y a 10% de réduction sur le prix total. P>

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);
}


4 commentaires

Pourquoi tu penses que ça devrait être 140? 200- (200 * 0.2) = 160


Parce que le problème dit qu'il génère 140,00.


Selon votre texte écrit, les deux réductions peuvent être appliquées en même temps, mais votre code ne le fait pas, vous obtenez donc le mauvais résultat. Modifiez le code afin qu'il calculera les deux rabais, le cas échéant. --- Si vous aviez débogué le code, il aurait été évident que le code de la deuxième réduction n'est jamais exécuté, donc: Qu'est-ce qu'un débogueur et comment peut-il m'aider à diagnostiquer les problèmes?


Lisez votre question à nouveau, vous devrez peut-être le modifier.


3 Réponses :


0
votes

Vous devez modifier le code ci-dessous,

Parce que lorsque le prix est toujours plus élevé, il fonctionnera d'abord si le bloc et ne participeront pas au dernier bloc.

alors changez-le sous la manière suivante: - xxx


2 commentaires

Pour quoi?


Achat <100 && Age> = 65



1
votes

La première instruction si elle sera exécutée en premier. Parce que le prix est supérieur à 100. Les autres déclarations ne seront pas exécutées. Essayez de changer si les expressions IF en raison de cela, le problème pour laquelle il ne donne pas le résultat que vous pouvez vous attendre à


0 commentaires

1
votes

Mon approche serait d'ajouter toutes les remises ensemble, puis de multiplier une fois à la fin.

que vous pouvez ajouter d'autres réductions si nécessaire P>

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 commentaires