Java Fast Food Menu (using methods)

I'm writing a program that displays a fast food menu. The user selects an item, then enters the quantity of that item, and can continue selecting items with specific quantities until done. I have to use several methods. What I'm having trouble with is calculating a running total. This is my first Java class so I only know the basics. I put the running total in a while loop so it'll keep adding a subtotal to it, but when I call done() the runningTotal is 0. What's the best way to keep track of the running total while using multiple methods? Also, I'm open to any criticism or clean up in my code. Thank you.

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)); >> > 
1,379 3 3 gold badges 21 21 silver badges 31 31 bronze badges asked Oct 22, 2015 at 3:15 Michael Romero Jr Michael Romero Jr 1 1 1 gold badge 1 1 silver badge 1 1 bronze badge

3 Answers 3

You are resetting the double runningTotal=0; in the while loop. Also the price returned by the itemPrice needs to be added into the runningTotal variable;

This is how your main method should look like. You are not required to call the subTotal method, once the user is done.

public static void main(String[] args) < int menuOption; int foodItem = 0; input = new Scanner(System.in); double runningTotal=0; do< menu(); menuOption = input.nextInt(); switch(menuOption)< case 1: foodItem = 1; runningTotal += itemPrice(foodItem); break; case 2: foodItem = 2; runningTotal += itemPrice(foodItem); break; case 3: foodItem = 3; runningTotal += itemPrice(foodItem); break; case 4: done(runningTotal); break; default: System.out.println("Invalid option."); >> while(ordering); System.out.println("Total amount: " + runningTotal); > 

Output:

Welcome 1. Burger ($2.00) 2. Fries ($1.50) 3. Soda ($1.00) 4. Done 1 You've ordered a burger Enter quantity 2 Subtotal: 4.0 Welcome 1. Burger ($2.00) 2. Fries ($1.50) 3. Soda ($1.00) 4. Done 2 You've ordered fries Enter quantity 1 Subtotal: 1.5 Welcome 1. Burger ($2.00) 2. Fries ($1.50) 3. Soda ($1.00) 4. Done 4 3.5 Enjoy your meal Total amount: 3.5