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

Java点餐系统如何根据用户输入调用对应菜单方法

问题修复方案

问题根源

  • 你的mainmenu()方法仅接收了用户输入的菜单选项,没有将选择结果返回给调用它的main方法,用户的选择没有被后续逻辑用到
  • main方法的循环内是硬编码按顺序执行mainmenu()、mainmeals()、mainsnacks()三个方法,没有做分支判断,所以不管用户选什么都会依次执行所有菜单逻辑

修改步骤

1. 改造mainmenu方法,返回用户选择

将mainmenu()的返回值类型从void改为int,在方法末尾将用户输入的选项返回给调用方:

public static int mainmenu()
{
    int Orders;
    int Meals = 1;
    int Snacks = 2;
    int Drinks = 3;
    int EXIT = 4;

    Scanner myInput = new Scanner(System.in);
    System.out.println("=======[STRESSFOOD]=====");
    System.out.println("---------[ Menu ]-------");
    System.out.println("1----------Meals--------");
    System.out.println("2---------Snacks--------");
    System.out.println("3---------Drinks--------");
    System.out.println("4--------[ EXIT ]-------");
    Orders = myInput.nextInt();
    return Orders;
}

2. 改造main方法,新增分支判断逻辑

在main方法中接收mainmenu()返回的用户选择,用switch分支匹配对应菜单逻辑,只有用户选中对应分类才会执行对应菜单方法:

public static void main(String[] args)
{
    int Options_Snacks;
    int Options_Snacks2;
    int Options_Snacks3;
    int Options_Drinks;
    int Options_Drinks2;
    int Options_Drinks3;
    int diff,prod ;
    int yes = 1;
    int no = 2;
    int End;
    
    do {
        int userChoice = mainmenu();
        // 根据用户选择执行对应逻辑
        switch (userChoice) {
            case 1:
                mainmeals();
                break;
            case 2:
                mainsnacks();
                break;
            case 3:
                // 此处替换为你自己的饮料菜单方法名即可
                maindrinks();
                break;
            case 4:
                System.out.println("退出点餐系统,感谢使用");
                return;
            default:
                System.out.println("输入的选项不合法,请重新输入");
        }
       
        Scanner myInput = new Scanner(System.in);
        System.out.println("是否需要继续点餐:按" + yes +"继续,按" + no +"结束");
        End = myInput.nextInt();
        
    } while(End == 1);
} 

优化建议

  • 不要重复创建Scanner对象,建议把Scanner定义为类的静态全局变量,或者在main方法中创建一次后传递给各个需要输入的方法,避免资源浪费和输入异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:39:04