do-while循环在Java中天然保证循环体至少执行一次,先执行后判断条件;语法为do{循环体}while(布尔表达式);,适用于用户输入校验等需“先执行、再验证”的场景。

do-while 循环在 Java 中天然保证循环体至少执行一次,因为它先执行后判断条件。
语法结构:先做再问
与 while 和 for 不同,do-while 把条件判断放在循环末尾:
do {
// 循环体(至少执行一次)
} while (布尔表达式); // 注意末尾有分号
执行流程是:执行一次循环体 → 计算 while 后的条件 → 若为 true,继续下一轮;若为 false,退出循环。
典型使用场景:用户输入校验
需要“先让用户输一次,再检查是否合法”的逻辑最适配 do-while。例如要求输入 1–100 之间的整数:
立即学习“Java免费学习笔记(深入)”;
import java.util.Scanner;
Scanner sc = new Scanner(System.in);
int num;
do {
System.out.print("请输入 1 到 100 之间的整数:");
num = sc.nextInt();
} while (num < 1 || num > 100);
System.out.println("输入有效:" + num);
即使用户第一次就输对了(比如输 50),循环也只执行一次;如果输错(如 -5 或 200),才会重复提示。
注意关键细节
- 分号不能省:while(条件) 后必须有英文分号,否则编译报错
- 条件为 false 时也执行过一次:哪怕初始状态就不满足条件,循环体仍会运行一遍
- 变量作用域要提前声明:循环体内定义的变量在 while 条件中不可见,需在 do 外声明(如上面的 int num)
和 while 循环对比更直观
如果用 while 实现相同逻辑,需额外处理“首次必进”问题,容易出错或冗余:
// 等效但不够简洁的 while 写法(不推荐)
int num = 0; // 强行设初值让 while 第一次进入
while (num < 1 || num > 100) {
System.out.print("请输入 1 到 100 之间的整数:");
num = sc.nextInt();
}
do-while 更直接反映“先做、再判断”的意图,代码更清晰、不易漏掉首次执行。


















