讲师中心 微信公众号
AI工具推荐 视频效率加速

在Java中do while循环的执行特点_Java循环差异解析

风磊大大_6162

风磊大大_6162

发布时间:2026-02-01 11:13:21

|

307人浏览过

|

来源于php中文网

原创

do-while循环至少执行一次,因其条件判断在循环体执行之后;while循环先判断后执行,条件为假时一次也不执行;二者在break、continue行为及标签支持上存在差异。

在java中do while循环的执行特点_java循环差异解析

do while 循环一定会执行至少一次

这是它和 while 最本质的区别:条件判断发生在循环体执行之后,所以不管 boolean 表达式初始值是 true 还是 false,do-while 的循环体都会先跑一遍。

常见错误现象:本想做“条件满足才进入”的逻辑,却误用了 do-while,结果第一次执行时用了未初始化的变量或空集合,直接抛出 NullPointerException 或逻辑错乱。

  • 适用场景:需要「先尝试、再判断是否继续」的操作,比如用户输入校验、文件读取重试、状态轮询
  • 不适用场景:初始化依赖条件成立(如 list != null && !list.isEmpty())再执行的逻辑
  • 注意:循环末尾的分号 ; 是语法必需的,漏写会导致编译错误 error: illegal start of expression

while 和 do while 的条件检查时机完全不同

while 是「先判后执」:每次循环开始前检查条件;do-while 是「先执后判」:每次循环结束时检查,决定是否再来一轮。

这意味着即使条件一开始就是 false,do-while 仍会执行一次循环体;而 while 会直接跳过整个循环块。

立即学习“Java免费学习笔记(深入)”;

Java Api Extractor
Java Api Extractor

从 Java 项目中提取 Controller 层接口定义为 JSON 数据。

下载
int i = 0;
do {
    System.out.println("do-while: " + i);
} while (i > 10); // 输出一行:do-while: 0

int j = 0;
while (j > 10) {
    System.out.println("while: " + j);
} // 完全不输出

break 和 continue 在 do while 中的行为和 while 一致

它们的作用范围仍是当前最内层循环,不会因为语法结构不同而改变语义。但要注意 continue 会跳过本次循环剩余部分,直接跳到 while (condition) 的条件判断处——也就是说,它仍会触发条件检查,而不是无条件回到循环开头。

  • break:立即退出整个 do-while 块,执行后续代码
  • continue:跳过当次循环末尾的代码(如果有),直接求值并判断 while(...) 中的表达式
  • 容易踩的坑:在 do-while 中写 continue 后忘记更新循环变量,导致无限循环(因为条件检查前变量没变)

嵌套 do while 时 label 的使用受限

Java 不支持给 do-while 加标签(label:)然后用 break label 跳出多层——这不是语法错误,而是根本不能编译:error: illegal start of expression。只有 for、while、switch 支持带标签的 break 和 continue。

如果真有深层跳出需求,得改用 for 或 while,或者靠返回布尔值+方法拆分来规避。

这个限制常被忽略,尤其在从其他语言迁移或重构旧代码时,看到 do-while 就下意识加 label,结果卡在编译阶段。

热门AI工具

更多
超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
java中boolean的用法
java中boolean的用法

在Java中,boolean是一种基本数据类型,它只有两个可能的值:true和false。boolean类型经常用于条件测试,比如进行比较或者检查某个条件是否满足。想了解更多java中boolean的相关内容,可以阅读本专题下面的文章。

2150

2023.11.13

java boolean类型
java boolean类型

本专题整合了java中boolean类型相关教程,阅读专题下面的文章了解更多详细内容。

163

2025.11.30

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

549

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

1698

2024.03.01

switch语句用法
switch语句用法

switch语句用法:1、Switch语句只能用于整数类型,枚举类型和String类型,不能用于浮点数类型和布尔类型;2、每个case语句后面必须跟着一个break语句,以防止执行其他case的代码块,没有break语句,将会继续执行下一个case的代码块;3、可以在一个case语句中匹配多个值,使用逗号分隔;4、Switch语句中的default代码块是可选的等等。

1071

2023.09.21

Java switch的用法
Java switch的用法

Java中的switch语句用于根据不同的条件执行不同的代码块。想了解更多switch的相关内容,可以阅读本专题下面的文章。

1437

2024.03.13

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

354

2023.09.25

scripterror怎么解决
scripterror怎么解决

scripterror的解决办法有检查语法、文件路径、检查网络连接、浏览器兼容性、使用try-catch语句、使用开发者工具进行调试、更新浏览器和JavaScript库或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1009

2023.10.18

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

60

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
dev.java 官方:Learn Java
dev.java 官方:Learn Java

共0课时 | 0人学习

Java JDBC数据库连接官方教程
Java JDBC数据库连接官方教程

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn