Java循环语句for、while和do-while的用法
发布时间 - 2026-01-07 00:00:00 点击率:次for循环适合已知迭代次数的场景,其三部分结构逻辑集中、不易漏更新,常见错误是分号位置写错。
for 循环适合已知迭代次数的场景
当你清楚要执行多少次,或者遍历一个确定长度的数组、集合时,for 最直观。它的三部分结构(初始化、条件判断、更新)写在一行,逻辑集中,不易漏掉循环变量更新。
常见错误是把分号写错位置,比如 for (int i = 0; i 结尾多了一个分号,导致循环体为空,只执行了五次空操作。
- 初始化语句只执行一次,通常定义并赋值循环变量
- 条件表达式在每次循环开始前判断,为
false时立即退出 - 更新语句在每次循环体执行完后运行,不是在条件判断之后立刻执行
for (int i = 0; i < 3; i++) {
System.out.println("i = " + i);
}
// 输出:i = 0, i = 1, i = 2
while 循环强调“条件优先”,适合不确定次数但有明确退出条件的情况
while 在进入循环体前就检查条件,如果初始条件就不满足,循环体一次都不会执行。它比 for 更灵活,适合读取输入、等待状态变化、处理链表等。
容易踩的坑是忘记在循环体内修改判断变量,造成死循环;或者把条件写反,比如用 != 判断浮点数是否到达目标值,因精度问题永远不相等。
- 必须确保循环体内有能影响条件表达式的语句
- 条件中避免使用
==或!=比较浮点数 - 如果需要先执行再判断,别硬套
while,改用do-while
int count = 0;
while (count < 3) {
System.out.println("count = " + count);
count++; // 忘记这行就会死循环
}
do-while 至少执行一次,适合“先做再问”的交互逻辑
do-while 的特点是循环体无条件执行一次,然后才检查条件。它天然适合菜单选择、用户输入校验这类“至少试一次”的场景。
注意分号不能省:do { ... } while (condition); 结尾的分号是语法必需,漏掉会编译报错 error: ';' expected。
- 条件写在末尾,括号外必须带分号
- 条件判断的是“是否继续”,不是“是否开始”
- 和
while相比,它不适用于需要跳过首次执行的逻辑
int choice;
do {
System.out.print("Enter 1 to continue, 0 to exit: ");
choice = scanner.nextInt();
} while (choice != 0);
三种循环性能没区别,选哪个取决于控制逻辑的自然性
JVM 对这三种循环生成的字节码几乎一致,性能差异可以忽略。真正影响可读性和健壮性的是你是否匹配了语义:遍历数组用 for,等待某个状态用 while,强制至少执行一次用 do-while。
一个常被忽略的细节是作用域:在 for (int i = 0; ...) 中声明的 i 只在循环内可见;而 while 和 do-while 中若在外部声明变量,该变量在循环结束后仍可访问——这点会影响命名冲突和内存生命周期判断。
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何获取免费开源的自助建站系统源码?
如何在Ubuntu系统下快速搭建WordPress个人网站?
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
Laravel如何使用Service Container和依赖注入?(代码示例)
利用vue写todolist单页应用
智能起名网站制作软件有哪些,制作logo的软件?
SQL查询语句优化的实用方法总结
Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案
如何登录建站主机?访问步骤全解析
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
Laravel如何升级到最新版本?(升级指南和步骤)
Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧
如何用免费手机建站系统零基础打造专业网站?
香港网站服务器数量如何影响SEO优化效果?
如何在IIS服务器上快速部署高效网站?
Laravel中的Facade(门面)到底是什么原理
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
文字头像制作网站推荐软件,醒图能自动配文字吗?
EditPlus中的正则表达式实战(6)
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
Laravel如何创建自定义Facades?(详细步骤)
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
iOS UIView常见属性方法小结
韩国服务器如何优化跨境访问实现高效连接?
如何在万网主机上快速搭建网站?
如何为不同团队 ID 动态生成多个独立按钮
网站制作软件免费下载安装,有哪些免费下载的软件网站?
如何为不同团队 ID 动态生成多个非值班状态按钮
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
制作公司内部网站有哪些,内网如何建网站?
Android实现代码画虚线边框背景效果
桂林网站制作公司有哪些,桂林马拉松怎么报名?
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
利用python获取某年中每个月的第一天和最后一天
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
如何在阿里云服务器自主搭建网站?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
如何在建站之星绑定自定义域名?
Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】
香港服务器WordPress建站指南:SEO优化与高效部署策略
PHP 500报错的快速解决方法
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法
网站页面设计需要考虑到这些问题
如何用低价快速搭建高质量网站?
Python文本处理实践_日志清洗解析【指导】
如何快速登录WAP自助建站平台?
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
Swift中循环语句中的转移语句 break 和 continue

