Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

The following code in Java is supposed to represent a vending machine and is sup

ID: 641660 • Letter: T

Question

The following code in Java is supposed to represent a vending machine and is suppose to be terminated when "X" is selected. However it just repeats the code and wont terminate. Please tell me what is wrong with it and provide a solution.

import java.util.Scanner;
public class VendingMachine1 {

   public static void main(String[] args) {
       // TODO Auto-generated method stub
       Scanner scan = new Scanner(System.in);
       double money = 0;
       final double milk = 2.50;
       final double soda = 2.25;
       final double candybar = 1.25;
       final double gummybears = 1.50;
       final double chips = 1.00;
       int quantitymilk =5;
       int quantitysoda =4;
       int quantitycandybar =5;
       int quantitygummybear =6;
       int quantitychips =6;
      
       String selection="";
       while (money >= 0)   {
           System.out.println("Welcome to Patrick's Vending Machine! We have all sorts of goodies for you:");
           System.out.println(" Item Price Quantity");   //Start of the table
          
           System.out.println("Milk $2.50 " +quantitymilk);           //Price of Milk and Quantity
          
           System.out.println("Soda $2.25 " +quantitysoda);           //Price of Soda and Quantity
          
           System.out.println("Candy Bar $1.25 " +quantitycandybar);       //Price of Candy Bar and Quantity
          
           System.out.println("Gummy Bears $1.50 " +quantitygummybear);       //Price of Gummy Bears and Quantity
          
           System.out.println("Chips $1.00 " +quantitychips);           //Price of Chips and Quantity
          
          
           System.out.println("What is the amount of money you wish to spend?");
           money =scan.nextDouble();
           if (money >= 0);   {
               System.out.println("The amount of money you wish to spend is " + money);
           }
          
           while (!selection.equalsIgnoreCase("X"))   {
               System.out.println("Please select an option:");
               System.out.println("A-Milk B-Soda C-Candy Bar D-Gummy Bear E-Chips X-Escape");
               selection =scan.next();
               if (selection.equalsIgnoreCase("A"))   {
                   quantitymilk--;
                   money = money -milk;
                   System.out.println("You have selected Milk. You have:" + money);
               }
               if (selection.equalsIgnoreCase("B"))   {
                   quantitysoda--;
                   money = money -soda;
                   System.out.println("You have selected Soda. You have:" + money);
               }
               if (selection.equalsIgnoreCase("C"))   {
                   quantitycandybar--;
                   money = money -candybar;
                   System.out.print("You have selected Candy Bar. You have:" + money);
               }
               if (selection.equalsIgnoreCase("D"))   {
                   quantitygummybear--;
                   money = money -gummybears;
                   System.out.println("You have selected Gummy Bears. You have:" + money);
               }
               if (selection.equalsIgnoreCase("E"))   {
                   quantitychips--;
                   money = money -chips;
                   System.out.println("You have selected Chips. You have:" +money);
               }
               if (selection.equalsIgnoreCase("X"))   {
                   System.out.println("Thank you for choosing Patrick's Vending Machine!");
               }
           }
      
       }
      
  
  
  
  
   }
  
}
   

Explanation / Answer

import java.util.Scanner;
public class VendingMachine1 {
   public static void main(String[] args) {
       // TODO Auto-generated method stub
       Scanner scan = new Scanner(System.in);
       double money = 0;
       final double milk = 2.50;
       final double soda = 2.25;
       final double candybar = 1.25;
       final double gummybears = 1.50;
       final double chips = 1.00;
       int quantitymilk =5;
       int quantitysoda =4;
       int quantitycandybar =5;
       int quantitygummybear =6;
       int quantitychips =6;
       String selection="";
      while (money >= 0 &&!selection.equalsIgnoreCase("X")) //Here is Bug added extra check so it will stop once u enter X
       {
           System.out.println("Welcome to Patrick's Vending Machine! We have all sorts of goodies for you:");
           System.out.println(" Item Price Quantity");   //Start of the table
           System.out.println("Milk $2.50 " +quantitymilk);           //Price of Milk and Quantity
           System.out.println("Soda $2.25 " +quantitysoda);           //Price of Soda and Quantity
           System.out.println("Candy Bar $1.25 " +quantitycandybar);       //Price of Candy Bar and Quantity
           System.out.println("Gummy Bears $1.50 " +quantitygummybear);       //Price of Gummy Bears and Quantity
           System.out.println("Chips $1.00 " +quantitychips);           //Price of Chips and Quantity
           System.out.println("What is the amount of money you wish to spend?");
           money =scan.nextDouble();
           if (money >= 0);   {
               System.out.println("The amount of money you wish to spend is " + money);
           }
           while (!selection.equalsIgnoreCase("X"))   {
               System.out.println("Please select an option:");
               System.out.println("A-Milk B-Soda C-Candy Bar D-Gummy Bear E-Chips X-Escape");
               selection =scan.next();
               if (selection.equalsIgnoreCase("A"))   {
                   quantitymilk--;
                   money = money -milk;
                   System.out.println("You have selected Milk. You have:" + money);
               }
               if (selection.equalsIgnoreCase("B"))   {
                   quantitysoda--;
                   money = money -soda;
                   System.out.println("You have selected Soda. You have:" + money);
               }
               if (selection.equalsIgnoreCase("C"))   {
                   quantitycandybar--;
                   money = money -candybar;
                   System.out.print("You have selected Candy Bar. You have:" + money);
               }
               if (selection.equalsIgnoreCase("D"))   {
                   quantitygummybear--;
                   money = money -gummybears;
                   System.out.println("You have selected Gummy Bears. You have:" + money);
               }
               if (selection.equalsIgnoreCase("E"))   {
                   quantitychips--;
                   money = money -chips;
                   System.out.println("You have selected Chips. You have:" +money);
               }
               if (selection.equalsIgnoreCase("X"))   {
                   System.out.println("Thank you for choosing Patrick's Vending Machine!");
               }
           }
       }
   }
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote