do-while 结构

do-while 结构

do-while 循环与 while 循环的区别在于:do-while 先执行循环体,再判断条件。

执行流程

  1. 先执行一次循环体中的语句块
  2. 再计算 boolean 表达式的值
  3. 如果为 true,再次执行循环体,如此循环往复
  4. 直到 boolean 表达式的值为 false,退出循环
do {
    语句块;
} while (boolean表达式);Code language: JavaScript (javascript)

关键区别:do-while 至少会执行一次循环体,而 while 可能一次都不执行。

使用 do-while 改写猜数字游戏

public static void main(String[] args) {
    int num = (int)(Math.random() * 100 + 1); // 生成 1~100 的随机目标数字
    Scanner scan = new Scanner(System.in);

    int input;
    System.out.println("请输入一个数字(1~100,输入0退出):");

    do {
        input = scan.nextInt();

        if (input == 0) {
            System.out.println("已退出游戏。");
            break;
        }
        if (input > num) {
            System.out.println("太大了");
        } else if (input < num) {
            System.out.println("太小了");
        } else {
            System.out.println("猜中了!答案是 " + num);
        }

        if (input != num && input != 0) {
            System.out.println("请继续输入(输入0退出):");
        }
    } while (input != num && input != 0);
}Code language: JavaScript (javascript)

while 与 do-while 对比

对比项whiledo-while
执行顺序先判断,后执行先执行,后判断
最少执行次数0 次1 次
适用场景可能不需要执行的情况至少需要执行一次的情况

典型使用场景

do-while 适合至少执行一次的场景,比如:

  • 菜单驱动程序(至少显示一次菜单)
  • 输入校验(至少读取一次用户输入)
  • 游戏主循环(至少执行一帧)
// 示例:至少执行一次的菜单
do {
    System.out.println("1. 开始游戏");
    System.out.println("2. 查看帮助");
    System.out.println("3. 退出");
    choice = scan.nextInt();
} while (choice != 3);Code language: JavaScript (javascript)

注意:do-while 循环末尾的 while(条件) 后面必须有分号 ;,这是与 while 循环语法上的重要区别。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注