do-while循环实现“先执行后判断”,循环体至少执行一次,条件判断在末尾;适用于用户输入校验、菜单选择、初始化重试等场景。

Java 中“先执行后判断”用 do-while 循环实现,核心特点是:循环体至少执行一次,条件判断放在末尾。
do-while 的基本结构
语法格式如下:
do {
// 循环体(先执行的代码)
} while (布尔表达式); // 后判断,注意末尾有分号
与 while 不同,do-while 先运行大括号内的语句,再检查 while 后的条件。若为 true,则继续下一轮;若为 false,循环结束。
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
典型使用场景
适合需要“至少做一次”的逻辑,比如用户输入校验、菜单选择、初始化后重试等。
- 用户输入密码,要求输入不为空,输错就重新输,但必须先让用户输一次
- 游戏开始前显示主菜单,选完才决定是否退出
- 尝试连接数据库,失败则等待后重试,但第一次不跳过
一个实用例子:安全的整数输入
避免 Scanner 输入非数字导致异常,用 do-while 确保至少提示并读取一次:
Scanner sc = new Scanner(System.in);
int num;
do {
System.out.print("请输入一个正整数:");
while (!sc.hasNextInt()) { // 先过滤非法输入
System.out.print("输入不是整数,请重新输入:");
sc.next(); // 清除错误标记
}
num = sc.nextInt();
} while (num
这里外层 do-while 保证用户至少被提示一次;内层 while 处理输入类型错误;整体逻辑清晰,不会因初始输入无效而跳过交互。
注意事项
- while 后必须加分号,漏掉会编译报错
- 循环条件在末尾,所以即使条件一开始就不满足,循环体也执行一次
- 变量作用域:定义在 do 块内的变量,在 while() 条件中不可见,需提前声明(如上面的 num)
- 慎用 break/continue,尤其 continue 在 do-while 中会直接跳到条件判断,不是回到开头
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










