在 Java 中使用 while 循环 时,有几个关键点需要特别注意,否则很容易出现逻辑错误或性能问题:
false(避免死循环)最常见的问题是 循环条件永远为真:
while (true) {
// 如果没有 break,就会死循环
}
✅ 正确示例:
int i = 0;
while (i < 10) {
i++;
}
⚠️ 注意:在循环体内 必须修改影响条件的变量
while 循环 不会自动初始化循环变量:
while (i < 10) { // 编译错误:i 未定义
}
✅ 正确:
int i = 0;
while (i < 10) {
i++;
}
while 是 先判断后执行:
int i = 10;
while (i < 5) {
System.out.println("不会执行");
}
如果你需要 至少执行一次,应使用 do-while:
do {
// 至少执行一次
} while (条件);
double d = 0.0;
while (d != 1.0) { // 可能永远不相等
d += 0.1;
}
✅ 推荐:
while (d < 1.0) {
d += 0.1;
}
break 和 continue 的使用break:立即结束整个循环continue:跳过本次循环,进入下一次判断while (条件) {
if (xxx) break;
if (yyy) continue;
}
⚠️ 滥用会导致逻辑难以理解
例如:
while(true) + Thread.sleep(0)容易导致:
while (rs.next()) {
// 如果异常,可能跳不出循环
}
✅ 推荐用 try-with-resources
| 场景 | 推荐 |
|---|---|
| 已知循环次数 | for |
| 不确定次数 | while |
| 至少执行一次 | do-while |
while 循环最怕:条件不变、变量不改、逻辑不清、死循环。
如果你愿意,我可以给你 常见 while 循环错误示例 + 修正版,或者结合 面试题 来讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。