Java Fast Food Menu (à l'aide de méthodes)
Je suis en train d'écrire un programme qui affiche un fast-food menu. L'utilisateur sélectionne un élément, puis entre la quantité de cet élément, et peut continuer à sélectionner des éléments avec des quantités jusqu'à ce que fait. J'ai utiliser plusieurs méthodes. Ce que je vais avoir des ennuis avec, est de calculer un total cumulé. C'est ma première classe Java donc je ne connais que les bases. J'ai mis le total en cours d'exécution dans une boucle while va donc continuer à ajouter un sous-total pour elle, mais quand je l'appelle done() la runningTotal est de 0. Quelle est la meilleure façon de garder une trace de l'exécution total lors de l'utilisation de plusieurs méthodes? Aussi, je suis ouvert à toute critique ou nettoyer dans mon code. Merci.
import java.util.Scanner;
public class Menu {
public double subTotal;
public static double runningTotal;
private static double itemPrice;
static boolean ordering = true;
static Scanner input = new Scanner(System.in);
public static void menu() {
System.out.println("Welcome \n1. Burger ($2.00) \n2. Fries ($1.50)\n3. Soda ($1.00) \n4. Done");
}
public static double itemPrice(int foodItem) {
if (foodItem == 1) {
//burger= $2.00
System.out.println("You've ordered a burger");
itemPrice = 2.00;
}
if (foodItem == 2) {
//fries = $1.50
System.out.println("You've ordered fries");
itemPrice = 1.50;
}
if (foodItem == 3) {
//soda = $1.00
System.out.println("You've ordered a soda");
itemPrice = 1.00;
}
quantity();
return itemPrice;
}
public static double quantity() {
System.out.println("Enter quantity");
double quantity = input.nextDouble();
subTotal(quantity, itemPrice);
return quantity;
}
public static double subTotal(double quantity, double itemPrice) {
double subTotal = quantity * itemPrice;
System.out.println("Subtotal: " + subTotal);
return subTotal;
}
public static void done(double runningTotal) {
ordering = false;
System.out.println(runningTotal);
System.out.println("Enjoy your meal");
}
public static void main(String[] args) {
int menuOption;
int foodItem = 0;
input = new Scanner(System.in);
do {
double runningTotal = 0;
menu();
menuOption = input.nextInt();
switch (menuOption) {
case 1:
foodItem = 1;
itemPrice(foodItem);
break;
case 2:
foodItem = 2;
itemPrice(foodItem);
break;
case 3:
foodItem = 3;
itemPrice(foodItem);
break;
case 4:
done(runningTotal);
break;
default:
System.out.println("Invalid option.");
}
} while (ordering);
{
subTotal(quantity(), itemPrice(foodItem));
runningTotal = runningTotal + subTotal(quantity(), itemPrice(foodItem));
}
}
}
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la réinitialisation de la
double runningTotal=0;
dans la boucle while. Aussi le prix renvoyé par laitemPrice
doit être ajouté dans lerunningTotal
variable;C'est comment votre méthode principale devrait ressembler. Vous n'êtes pas obligé d'appeler le
subTotal
méthode, une fois que l'utilisateur est effectué.De sortie:
1.5
+1
+2
=3.5
?Vous réinitialisez runningTotal à 0 à chaque itération. J'ai joint un exemple de travail. J'ai déplacé le calcul total de vos sous-total méthode où il ajoute chaque sous-total comme ils viennent dans.
Cela portera le nombre exact de sortie.