CodeGym /课程 /JAVA 25 SELF /do-while 循环:入门与使用细节

do-while 循环:入门与使用细节

JAVA 25 SELF
第 4 级 , 课程 3
可用

1. 认识 do-while 循环

想象一下:你在编写一个程序来猜用户想的数字。需要至少一次询问这个数字,并在没猜中之前反复询问。如果事先检查条件,普通的 while 可能根本不会进入循环。

这时 do-while 就派上用场了。与 while 不同,它总会先执行一次循环体——即使条件一开始就是假。这就像在收银台总能拿到一块口香糖,无论是否有购买。

do-while 的语法

很简单:Java 中又一“成对出现”的关键字。


do
{
    // 循环体:这段代码至少会执行一次
}
while (uslovie);
do-while 循环的语法

注意条件括号后面末尾的分号 ;!在普通的 while 中没有,而这里却有——新手的经典陷阱。

do-while 循环的步骤说明

  1. 进入循环体(总会至少一次)。
  2. 检查条件。
  3. 如果条件为真——重复执行循环体。
  4. 如果条件为假——退出循环。

2. 与普通 while 的区别

回顾普通 while 的基本工作流程:

while (uslovie)
{
    // 循环体
}

如果条件从一开始就是假,循环体一次也不会执行!

现在看一个 do-while 的例子:

do
{
    // 循环体
}
while (uslovie);

即使条件一开始就为假,循环体也会至少执行一次!

用代码来说明差异:

// 普通 while
int count = 0;
while (count > 0)
{
    System.out.println("count = " + count);
    count--;
}
// 不会输出任何内容

// do-while
int count2 = 0;
do
{
    System.out.println("count2 = " + count2);
    count2--;
}
while (count2 > 0);
// 即使条件为假,也会输出 “count2 = 0”!

这有时看起来“有点奇怪”,但在处理用户输入和数据校验时,这正是所需要的行为。

3. do-while 的实际应用场景

这个循环最常出现在哪里?

数据校验

常见场景:让用户输入正确的数据(例如,密码不少于 6 个字符),并在一切正确之前反复提示。

String password;
do
{
    System.out.print("请输入新密码(不少于 6 个字符):");
    password = console.nextLine();
}
while (password.length() < 6);

System.out.println("密码已接受!");

循环体至少会执行一次——即使用户立刻输入了一个很长的密码。

控制台应用中的菜单

常见模式:显示菜单,等待命令,并且只在接收到特定命令时退出。

String command;
do
{
    System.out.println("菜单:");
    System.out.println("1. 显示问候");
    System.out.println("2. 退出");
    System.out.print("选择操作:");
    command = console.nextLine();

    if (command.equals("1")) 
    {
        System.out.println("你好,世界!");
    }
    else if (!command.equals("2"))
    {
        System.out.println("未知命令。");
    }
}
while (!command.equals("2"));

System.out.println("再见!");

4. 表格:比较 while 与其他循环

循环类型 条件检查时机 循环体可能执行的次数 适用场景
while
之前 0 次或更多 当事先未知重复次数时
do-while
之后 1 次或更多 当必须至少执行一次循环体时
for
之前 0 次或更多 当已知迭代次数时
评论 (2)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
窝窝飞 级别 4,Nanjing,China
3 三月 2026
继续复习课程
null 级别 6,-,Singapore
18 一月 2026

You've done a great job today, it's time to take a break. Get back to solving tasks tomorrow.
不让做了