在 Java 中,跳出 while 循环有几种主要方式,最常用的是使用 break 语句,下面我将详细介绍这些方法,并提供代码示例。

使用 break 语句
break 语句是最直接、最常用的方法,当 break 语句在循环体内执行时,程序会立即终止并退出当前的 while 循环,然后继续执行循环体之后的代码。
语法:
while (条件) {
// 循环体代码
if (某个条件满足) {
break; // 立即跳出 while 循环
}
// 其他循环代码
}
// 循环结束后的代码
示例:
public class BreakExample {
public static void main(String[] args) {
int count = 0;
System.out.println("开始循环...");
while (count < 10) {
System.out.println("当前 count: " + count);
// 当 count 等于 5 时,跳出循环
if (count == 5) {
System.out.println("条件满足,准备跳出循环。");
break;
}
count++;
}
System.out.println("循环已结束。");
}
}
输出:

开始循环...
当前 count: 0
当前 count: 1
当前 count: 2
当前 count: 3
当前 count: 4
当前 count: 5
条件满足,准备跳出循环。
循环已结束。
可以看到,当 count 变为 5 时,if 条件成立,break 被执行,循环立即终止,没有继续执行 count = 6 到 count = 9 的部分。
使用 return 语句
return 语句会立即终止当前方法的执行,如果你的 while 循块在一个方法内部,使用 return 不仅能跳出循环,还能直接退出整个方法。
示例:
public class ReturnExample {
public static void main(String[] args) {
searchForNumber();
System.out.println("main 方法继续执行。");
}
public static void searchForNumber() {
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int target = 5;
System.out.println("开始查找数字 " + target + "...");
while (true) { // 一个无限循环
for (int num : numbers) {
System.out.println("正在检查: " + num);
if (num == target) {
System.out.println("找到目标数字 " + target + ",方法即将结束。");
return; // 直接退出 searchForNumber 方法,while 循环也随之结束
}
}
// for 循环结束也没找到,理论上这里不会执行
break;
}
System.out.println("查找结束。"); // 这行代码不会被执行
}
}
输出:

开始查找数字 5...
正在检查: 1
正在检查: 2
正在检查: 3
正在检查: 4
正在检查: 5
找到目标数字 5,方法即将结束。
main 方法继续执行。
可以看到,return 语句执行后,searchForNumber 方法立即结束,while 循环自然被跳出。main 方法中的后续代码得以继续执行。
修改循环条件
这是最“根本”的跳出循环方式,通过在循环体内改变循环的判断条件,使其在下一轮循环时不再满足,从而自然地结束循环。
示例:
public class ConditionExample {
public static void main(String[] args) {
boolean shouldContinue = true;
int count = 0;
while (shouldContinue) {
System.out.println("当前 count: " + count);
if (count == 5) {
System.out.println("条件满足,将 shouldContinue 设为 false。");
shouldContinue = false; // 修改循环条件
}
count++;
}
System.out.println("循环已结束。");
}
}
输出:
当前 count: 0
当前 count: 1
当前 count: 2
当前 count: 3
当前 count: 4
当前 count: 5
条件满足,将 shouldContinue 设为 false。
当前 count: 6 // 注意:这里还会执行一次,因为条件是在循环末尾才被修改的
循环已结束。
注意: 这种方式不像 break 那样立即终止,而是让循环完成当前这一轮,然后在下一次循环开始前检查条件时发现 shouldContinue 为 false,从而退出,在某些情况下,这种“延迟”退出可能不是你想要的。
使用 continue (跳出本次循环,不是整个循环)
continue 是一个需要特别注意的语句,它不会跳出整个 while 循环,而是会立即结束当前这一次循环,跳过本次循环中 continue 语句之后的所有代码,直接进入下一次循环的条件判断。
示例:
public class ContinueExample {
public static void main(String[] args) {
int count = 0;
while (count < 10) {
count++;
// 当 count 是 3 的倍数时,跳过本次循环的剩余部分
if (count % 3 == 0) {
System.out.println(count + " 是 3 的倍数,跳过打印。");
continue; // 跳转到 while (count < 10) 的判断处
}
System.out.println("打印数字: " + count);
}
}
}
输出:
打印数字: 1
打印数字: 2
3 是 3 的倍数,跳过打印。
打印数字: 4
打印数字: 5
6 是 3 的倍数,跳过打印。
打印数字: 7
打印数字: 8
9 是 3 的倍数,跳过打印。
打印数字: 10
可以看到,当 count 为 3, 6, 9 时,continue 执行,System.out.println(...) 没有被调用,但循环继续进行。
总结与选择
| 方法 | 作用 | 适用场景 |
|---|---|---|
break |
立即终止并退出当前的 while 循环。 |
当在循环内部满足某个特定条件时,需要完全停止循环,这是最常用、最清晰的方式。 |
return |
立即终止当前方法的执行。 | 当循环的目的是完成某个任务(如查找、处理),一旦找到结果或任务完成,整个方法就没必要再继续下去了。 |
| 修改条件 | 让循环条件在下一轮判断时为 false,从而自然退出。 |
当退出循环的逻辑比较复杂,或者你希望循环能“优雅地”结束,而不是突然中断时。 |
continue |
跳过本次循环的剩余部分,直接进入下一次循环。 | 当你想要跳过循环体中的某些特定情况,但不想完全终止循环时。 |
最佳实践:
- 首选
break:如果你只是想因为某个条件满足而停止循环,break是最直观、最不容易出错的选择。 return用于方法退出:如果循环的结束意味着整个方法的任务完成,使用return更能体现代码的意图。- 避免在复杂循环中混用:在一个嵌套很深的循环中混用
break和continue会让代码难以理解和维护,如果逻辑复杂,可以考虑将循环体提取到一个单独的方法中,用return来处理退出。
