You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中while与do-while语句的区别解析请求(附测试代码)

while 与 do-while 语句的核心区别

核心差异:执行顺序

  • while:先检查循环条件,条件满足才执行循环体;如果初始条件不满足,循环体一次都不会运行。
  • do-while:先执行一次循环体,再检查条件;不管初始条件是否满足,循环体至少会执行一次。

你写的代码为什么没看出区别?

你两段代码里的name初始值是空字符串,name.isBlank()结果为true,所以两种循环第一次都会执行循环体。把初始值改成非空内容,就能立刻看到差异:

修改后的 while 测试代码

import java.util.Scanner;

public class learn {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String name = "Alice"; // 初始值非空
        
        while(name.isBlank()) {
            System.out.println("your name pls : ");
            name = scanner.nextLine();
        }
        
        System.out.println("Hello "+name);
    }
}

这段代码中,name.isBlank()一开始是false,循环体完全不会执行,直接输出Hello Alice。

修改后的 do-while 测试代码

import java.util.Scanner;

public class learn {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String name = "Alice"; // 初始值非空
        
        do {
            System.out.println("your name pls : ");
            name = scanner.nextLine();
        } while(name.isBlank());
        
        System.out.println("Hello "+name);
    }
}

这段代码会先执行一次循环体,打印your name pls : ,等你输入内容后才会判断条件。哪怕初始name非空,循环体还是会运行一次。

适用场景

  • 用while:不确定循环体是否需要执行,必须先判断条件的场景(比如遍历可能为空的集合)。
  • 用do-while:确定循环体至少要执行一次的场景(比如用户输入验证,必须先让用户输入内容再判断合法性)。

内容的提问来源于stack exchange,提问作者james51

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:50:20