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 更灵活,适合读取输入、等待状态变化、处理链表等。
容易踩的坑是忘记在循环体内修改判断变量,造成死循环;或者把条件写反,比如用 != 判断浮点数是否到达目标值,因精度问题永远不相等。
立即学习“Java免费学习笔记(深入)”;
本文档主要讲述的是Python开发网站指南;HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器 Python和其他程序语言一样,有自身的一套流程控制语句,而且这些语句的语法和其它程序语言类似,都有for, if ,while 类的关键字来表达程序流程。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
- 必须确保循环体内有能影响条件表达式的语句
- 条件中避免使用
==或!=比较浮点数 - 如果需要先执行再判断,别硬套
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 中若在外部声明变量,该变量在循环结束后仍可访问——这点会影响命名冲突和内存生命周期判断。









