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
相关产品推荐
相关产品推荐

