Java菜单驱动程序核心是while循环+switch分支+Scanner输入,需处理异常、校验范围并模块化功能。

Java中制作菜单驱动程序,核心是用循环控制流程 + 条件判断处理用户选择,配合 Scanner 获取输入。关键不在于功能多复杂,而在于结构清晰、退出机制明确、输入容错合理。
用 while 循环构建主菜单循环
菜单驱动程序本质是一个持续运行、等待用户指令的交互式流程。最常用方式是用 while(true) 搭配 break 退出:
- 循环体里先打印菜单选项(如“1. 查看列表 2. 添加项 0. 退出”)
- 用 Scanner 读取用户输入的数字或字符
- 根据输入值进入对应分支;若输入 0 或 “quit”,执行 break 跳出循环
用 switch 语句分发用户选择
当菜单选项为整数编号时,switch 比一长串 if-else 更简洁可读:
- 确保 Scanner 读入的是 int 类型(可用 nextInt(),但要注意输入非数字时的异常)
- 每个 case 后加 break,避免穿透;default 分支处理非法输入(如输入 5 但只有 4 个选项)
- 实际业务逻辑(如调用 addStudent()、printAll())写在 case 内,保持 switch 本身轻量
增强健壮性:处理输入异常和非法值
真实场景中用户可能输字母、空行或超范围数字。推荐做法:
立即学习“Java免费学习笔记(深入)”;
- 用 hasNextInt() 预判再 nextInt(),避免 InputMismatchException
- 读完数字后调用 nextLine() 消除回车符残留,防止后续 nextLine() 读到空串
- 对数字选项做范围校验(如 input 4),提示“请输入 0–4 之间的数字”
模块化设计:把功能拆成独立方法
不要把所有代码堆在 main 里。例如:
- 单独写 showMenu() 负责打印选项
- 写 addProduct()、searchByPrice() 等方法封装具体业务
- main 方法只保留流程控制逻辑——显示菜单 → 获取选择 → 调用对应方法 → 判断是否继续











