java菜单选择逻辑核心是用switch处理数字选项(推荐)或if-else处理字符串/复杂条件,配合scanner输入读取、循环控制连续操作,并通过异常处理和输入校验增强健壮性。

Java 中实现菜单选择逻辑,核心是用流程控制语句(如 if-else、switch)配合输入读取(如 Scanner),让用户输入选项后跳转到对应功能分支。
用 switch 处理数字菜单(推荐)
当菜单项是固定编号(如 1-5),switch 清晰、高效,且天然支持“非法输入”兜底。
示例结构:
- 用
Scanner读取用户输入的整数 - 用
switch (choice)分支处理各选项 -
default分支提示“输入无效”,避免程序静默失败 - 每个
case后加break,防止穿透
用 if-else 处理字符串或复杂条件
如果菜单用字母(如 "A. 查看"、"B. 添加")或需组合判断(如 "admin+delete"),if-else 更灵活。
注意点:
- 用
.equalsIgnoreCase()比较字符串,忽略大小写 - 优先检查明确值(如
"exit"),再处理模糊匹配(如startsWith("add")) - 避免深层嵌套,可把每个功能抽成独立方法,
if块里只负责调用
循环包裹菜单,支持连续操作
真实菜单需要反复显示,直到用户主动退出。常用 while(true) + break 实现:
- 在循环开头打印菜单文字
- 读取输入后,用
switch或if判断是否为退出指令(如输入 0 或 "quit") - 若为退出,执行
break跳出循环;否则执行对应功能,继续下一轮
增强健壮性:处理异常输入
用户可能输字母、空行或超范围数字,直接调用 nextInt() 会抛 InputMismatchException。
安全做法:
- 用
scanner.hasNextInt()预判是否为整数,不是就调用nextLine()清空缓存 - 或统一用
nextLine()读字符串,再用Integer.parseInt()转换,并用try-catch捕获异常 - 对字符串输入,用
trim()去首尾空格,避免空输入误判
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











