有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带循环的java菜单选项

我在回答这部分问题时遇到了问题。虽然这看起来很容易,但我花了几天时间调试它。因此,我有一个包含6个选项的菜单。例如:

  1. 购买品脱佳肴
  2. 买蛋奶酥
  3. Do维修套件
  4. 显示价目表
  5. 退房
  6. (我不确定是否需要将其作为if-else语句编写)如果需要,请再次执行循环

一开始我试图使用switch语句,但我不能在一种情况下使用值,也不能在另一种情况下使用它。所以我试着写这篇文章,但问题是一旦我选择了选项1,它将只显示选项1,而不管我输入的是什么数字

answermenuoption = inScan.nextInt();

while (answermenuoption != menustop) ;
{

    if (answermenuoption == 1) {
        prompt = "Please enter another item from the menu above: ";
        if (answermenuoption == 1) {

            System.out.println("How many pins do you want to buy?");

            pins = inScan.nextInt();

            if (pins > 10) {
                pricepins = pins * 18;
                System.out.println("Thank you.Your order received");

                System.out.println(menu);
            } else {
                pricepins = pins * 20;
                System.out.println("Thank you.Your order received");
                System.out.println(menu);
            }

        } else if (answermenuoption == 2) {
            System.out.println("How many quaffles do you want to buy?");
            quaffles = inScan.nextInt();

            if (quaffles > 5) {
                quafflesbox = quaffles / 5;
                quafflesindividual = quaffles % 5;
                pricequafflesbox = 580 * quafflesbox;
                pricequafflesindividual = quafflesindividual * 145;
                pricequaffles = quafflesbox * 580 + quafflesindividual * 145;

                System.out.println("Thank you.Your order received");
                System.out.println(menu);
            } else {
                pricequaffles = quafflesindividual * 145;
                System.out.println("Thank you.Your order received");
                System.out.println(menu);
            }

        } else if (answermenuoption == 3) {
            System.out.println("How many broomstick service kit do you want to buy?");
            broomsticks = inScan.nextInt();
            pricebroomsticks = broomsticks * 899;

            System.out.println("Thank you.Your order received");
            System.out.println(menu);
        } else if (answermenuoption == 4) {
            System.out.println(pricemenudiscount);
            System.out.println(menu);

        } else if (answermenuoption == 5) pricetotal = pricequaffles + pricebroomsticks + pricepins;

        if (pricetotal > 1493) {

            discountapplied = pricetotal * 0.1;
            pricetotal = pricetotal - discountapplied;

            System.out.println("The total price is:" + pricetotal);
            System.out.println("Price of pins:" + pricepins);
            System.out.println("Price of quaffles" + pricequaffles);
            System.out.println("Price for quaffles in the box of 5 = " + pricequafflesbox);
            System.out.println("Price for single quaffles = " + pricequafflesindividual);
            System.out.println("Price for broomstick service kits = " + pricebroomsticks);
            System.out.println("Discount applied: = " + discountapplied);

            System.out.println("Please input the money amount: ");
            moneyinput = inScan.nextInt();

            changetocustomer = moneyinput - pricetotal;
            System.out.println("Your change is:" + changetocustomer);
        } else {
            System.out.println("The total price is:" + pricetotal);
            System.out.println("Price of pins:" + pricepins);
        }
    }
}

共 (1) 个答案

  1. # 1 楼答案

    您只读取循环开头的answermenuoption

    试试这个:

    int answermenuoption = inScan.nextInt();
            do
            {
                if(answermenuoption == 1)
                {
                 //insert code
                }
                if(answermenuoption==2)
                {
                //insert code
                }
    
                //....
    
            }while((answermenuoption=inScan.nextInt())!=menustop);
    

    还请注意,此do while将始终至少运行一次。如果希望它能够在第一个值退出,只需在第一个If语句之前添加以下代码

    if(answermenuoption == menustop)
        break;