如果在Java中的else语句

在Java中需要if else语句的帮助。 当项目为0时,需要程序说“抱歉,缺货”。我试过但它不会打印出来“对不起,缺货”任何人都可以向我解释如何正确设置,以便当项目为0时该程序将让用户知道该商品缺货。 谢谢。

import java.util.Scanner; public class VendingMachine { public static void main(String[] args) { Scanner in = new Scanner(System.in); int Chips = 5; int Cookies = 4; int Candies = 3; double ChipsPrice = 1.25; double CookiesPrice = 0.85; double CandiesPrice = 0.95; Scanner choice = new Scanner(System.in); Scanner moneyIn = new Scanner(System.in); while (true) { double Change = 0; double Amount = 0; double Money = 0; System.out.println("Welcome to the Vending Machine"); System.out.println("Please insert Money"); Amount = moneyIn.nextDouble(); //Make an if statements, such as if moneyIn equals 5 quarters then Amount = 5*0.25 //Ask how many quarters how many nickels how many dimes System.out.println("What snack would you like?"); System.out.println("Potato Chips: $" + ChipsPrice + " " + Chips + " left"); System.out.println("Cookies: $" + CookiesPrice + " " + Cookies + " left"); System.out.println("Candies: $" + CandiesPrice + " " + Candies + " left"); String which = choice.nextLine(); if (which.equals("Potato Chips")) { System.out.println("You selected Potato Chips: $" + ChipsPrice + " " + Chips + " left"); if (Amount < ChipsPrice) { System.out.println("Not enough money inserted"); if (Chips == 0) ; System.out.println("Sorry, out of stock"); } else { Chips = Chips - 1; Change = ChipsPrice - Amount; System.out.println("Please take your chips "); System.out.println("Your change is " + Change); } } else if (which.equals("Cookies")) { System.out.println("You selected Cookies: $" + CookiesPrice + " " + Cookies + " left"); Cookies = Cookies - 1; if (Amount < CookiesPrice) { System.out.println("Not enough money inserted"); if (Cookies == 0) System.out.println("Sorry, out of stock"); } else { Cookies = Cookies - 1; Change = CookiesPrice - Amount; System.out.println("Please take your cookies"); System.out.println("Your change is " + Change); } } else if (which.equals("Candies")) { System.out.println("You selected Candies: $" + CandiesPrice + " " + Candies + " left"); if (Amount < CandiesPrice) { System.out.println("Not enough money inserted"); if (Cookies == 0) System.out.println("Sorry, out of stock"); } else { Candies = Candies - 1; Change = CookiesPrice - Amount; System.out.println("Please take your candies"); System.out.println("Your change is " + Change); } } else { System.out.println("Please select one of the snacks below"); } } } } 

只是为了完成这一点,一些观察:

 // It might be simpler to use a "switch" statement here if (which.equals("Potato Chips")) { System.out.println("You selected Potato Chips: $"+ChipsPrice+" "+Chips+" left"); if (Amount < ChipsPrice){ System.out.println("Not enough money inserted"); // Remove the semicolon - as written this won't do anything // Also, this condition shouldn't be here since you're not vending anyway // Incidentally, many people argue that you should always use curly // brackets, even around one-line "if" statements like this, precisely // to prevent errors like this if (Chips == 0); System.out.println("Sorry, out of stock"); } else { // This can be written as Chips--; Chips = Chips - 1; // Should actually be Amount - ChipsPrice; // If they paid 75 cents for a 25-cent item, the change is 75 - 25 = 50 cents, // NOT 25 - 75 = -50 cents Change = ChipsPrice - Amount; System.out.println("Please take your chips " ); System.out.println("Your change is "+ Change ); } } else if (which.equals("Cookies")) { System.out.println("You selected Cookies: $"+CookiesPrice+" "+Cookies+" left"); // Cookies-- Cookies = Cookies - 1; if (Amount < CookiesPrice){ System.out.println("Not enough money inserted"); // Should be checked in the "else" statement if (Cookies == 0) System.out.println("Sorry, out of stock"); } else { // Cookies-- Cookies = Cookies - 1; // Amount - CookiesPrice Change = CookiesPrice - Amount; System.out.println("Please take your cookies"); System.out.println("Your change is "+ Change ); } } else if (which.equals("Candies")) { System.out.println("You selected Candies: $"+CandiesPrice+" "+Candies+" left"); if (Amount < CandiesPrice){ System.out.println("Not enough money inserted"); // Again, you shouldn't check this here given that you won't vend either way // Also, should be if (Candies == 0), NOT if (Cookies == 0) if (Cookies == 0) System.out.println("Sorry, out of stock"); } else { // Candies--; Candies = Candies - 1; // Should actually be Amount - CandyPrice. You use CookiesPrice instead. Change = CookiesPrice - Amount; System.out.println("Please take your candies"); System.out.println("Your change is "+ Change ); } } else { System.out.println("Please select one of the snacks below"); } 

还有一件事:你基本上连续3次做同样的事情; 在这种情况下,通常最好尝试将有问题的行为重构为一种方法(而不是单独键入3次)。