break 立即终止当前循环,continue 跳过本次循环剩余代码并进入下一轮;二者在嵌套循环中需配合标签精准控制,且 while 中 continue 后若 i++ 位置不当易致死循环。

break 和 continue 是 Java 中控制循环执行路径的两个基础关键字,作用完全不同,用错容易导致逻辑错误或死循环。
break:立刻结束整个循环
遇到 break,当前所在的 for、while 或 do-while 循环立即终止,程序跳转到循环体之后的第一条语句继续执行。它还能用在 switch 中防止 case 穿透,但在循环里只管“退出当前层”。
- 普通用法:常配合 if 判断,在满足条件时提前跳出
- 示例:遍历数组找某个值,找到就 break,避免无谓遍历
- 注意:在嵌套循环中,break 只跳出最内层循环;若想跳出外层,需配合标签
continue:跳过本次,进入下一轮
执行 continue 后,本轮循环剩余代码不再运行,直接进入下一次循环的判断环节(for 中会先执行 i++,while/do-while 中则重新检查条件)。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
- 适合过滤场景:比如遍历数字时跳过偶数、跳过 null 元素等
- 在 for 循环中,continue 会跳过后续语句,但依然执行更新表达式(如 i++)
- 在 while 中,continue 直接回到 while 条件判断,不会重复执行循环变量的自增操作——这点容易出错,要特别注意位置
带标签的 break 和 continue
当有两层及以上循环时,单靠 break 或 continue 不够精准,这时可给外层循环加标签(如 outer: for(...)),再用 break outer 或 continue outer 明确控制目标。
- break outer:从内层直接跳出到 outer 循环之后
- continue outer:跳过当前 outer 的本轮,直接进入 outer 的下一次迭代(相当于“跳过整个内层循环”)
- 标签名后跟冒号,必须紧贴在循环语句前,不能隔行或加其他语句
常见误区提醒
很多初学者混淆它们的行为,尤其是和循环变量自增的位置关系:
- 在 while 循环中,如果把 i++ 放在 continue 后面,那 continue 执行后 i 就不会增加,可能导致死循环
- break 不影响循环外的代码,程序照常往下走;而 return 会直接退出方法,二者别混用
- continue 不能用于 switch,只属于循环结构;break 在 switch 和循环中都合法
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










