You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Java菜单程序的数字输入转换为菜品名并输出完整订单?

解决Java菜单程序订单输出问题

修改思路

核心是把用户输入的数字转换为对应菜品名称字符串,避免直接对整数进行相加操作。具体步骤:

  1. 定义字符串变量存储用户选中的各品类菜品名称
  2. 在处理每个输入的分支逻辑中,将对应菜品名赋值给变量
  3. 最后按指定格式拼接所有菜品名并输出完整订单

修改后的完整代码

import java.util.Scanner;

public class Menu2 {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        String starterMeal[] = { "Garlic Bread", "Lentil Soup", "Prawn Cocktail" };
        String mainMeal[] = { "Fish and Chips", "Vegetarian Curry", "Cottage Pie" };
        String dessertMeal[] = { "Trio of ice-cream", "Apple Pie", "Cheesecake" };
        String drinkMeal[] = { "Tea", "Coffee", "Lemonade" };

        double starterPrice[] = { 4.50, 4.99, 9.99 };
        double mainPrice[] = { 12.50, 9.90, 11.50 };
        double dessertPrice[] = { 4.50, 3.50, 2.50 };
        double drinkPrice[] = { 2.99, 3.50, 2.50 };

        // 存储用户选中的菜品名称
        String selectedStarter = "";
        String selectedMain = "";
        String selectedDessert = "";
        String selectedDrink = "";

        // 询问顾客姓名并欢迎
        System.out.println("Hello, can you tell me your name? ");
        String name = scanner.nextLine();
        System.out.println("Hello, " + name + ", welcome to our cafe!");

        // 展示完整菜单
        System.out.println("Here is the full menu: ");
        System.out.println();

        System.out.println("\tStarters: ");
        System.out.println("1. Garlic Bread £4.50");
        System.out.println("2. Lentil Soup £4.99");
        System.out.println("3. Prawn Cocktail £9.99");
        System.out.println();

        System.out.println("\tMain Meals: ");
        System.out.println("4. Fish and Chips £12.50");
        System.out.println("5. Vegetarian Curry £9.90");
        System.out.println("6. Cottage Pie £11.50");
        System.out.println();

        System.out.println("\tDesserts: ");
        System.out.println("7. Trio of ice-cream £4.50");
        System.out.println("8. Apple Pie £5.20");
        System.out.println("9. Cheesecake £6.50");
        System.out.println();

        System.out.println("\tDrinks: ");
        System.out.println("10. Tea £2.99");
        System.out.println("11. Coffee £3.50");
        System.out.println("12. Lemonade £2.50");
        System.out.println();

        // 处理前菜选择
        System.out.println("What would you like for starters? ");
        int custStarter = scanner.nextInt();
        if (custStarter == 1) {
            selectedStarter = starterMeal[0];
            System.out.println(selectedStarter + " £" + starterPrice[0]);
        } else if (custStarter == 2) {
            selectedStarter = starterMeal[1];
            System.out.println(selectedStarter + " £" + starterPrice[1]);
        } else {
            selectedStarter = starterMeal[2];
            System.out.println(selectedStarter + " £" + starterPrice[2]);
        }

        // 处理主菜选择
        System.out.println("What would you like for your main? ");
        int custMain = scanner.nextInt();
        if (custMain == 4) {
            selectedMain = mainMeal[0];
            System.out.println(selectedMain + " £" + mainPrice[0]);
        } else if (custMain == 5) {
            selectedMain = mainMeal[1];
            System.out.println(selectedMain + " £" + mainPrice[1]);
        } else {
            selectedMain = mainMeal[2];
            System.out.println(selectedMain + " £" + mainPrice[2]);
        }

        // 处理甜点选择
        System.out.println("What would you like dessert? ");
        int custDessert = scanner.nextInt();
        if (custDessert == 7) {
            selectedDessert = dessertMeal[0];
            System.out.println(selectedDessert + " £" + dessertPrice[0]);
        } else if (custDessert == 8) {
            selectedDessert = dessertMeal[1];
            System.out.println(selectedDessert + " £" + dessertPrice[1]);
        } else {
            selectedDessert = dessertMeal[2];
            System.out.println(selectedDessert + " £" + dessertPrice[2]);
        }

        // 处理饮品选择
        System.out.println("What would you like to drink? ");
        int custDrink = scanner.nextInt();
        if (custDrink == 10) {
            selectedDrink = drinkMeal[0];
            System.out.println(selectedDrink + " £" + drinkPrice[0]);
        } else if (custDrink == 11) {
            selectedDrink = drinkMeal[1];
            System.out.println(selectedDrink + " £" + drinkPrice[1]);
        } else {
            selectedDrink = drinkMeal[2];
            System.out.println(selectedDrink + " £" + drinkPrice[2]);
        }

        // 输出完整订单
        System.out.println("您的订单是:" + selectedStarter + "、" + selectedMain + "、" + selectedDessert + "、" + selectedDrink);
    }
}

关键修改说明

  • 新增selectedStarter、selectedMain等四个字符串变量,专门存储用户选中的菜品名称
  • 在每个输入判断的分支中,同步将对应数组里的菜品名赋值给上述变量
  • 最后新增订单输出语句,按要求格式拼接所有菜品名称并打印

内容的提问来源于stack exchange,提问作者cloudze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 14:20:50