使用 break 语句(最常用)
break 语句可以立即终止并退出当前所在的循环,当 break 执行后,程序会跳转到循环体下方的第一条语句继续执行。

适用场景:
当你想在某个条件满足时,完全跳出整个循环,不再继续执行循环体内的任何后续代码。
代码示例:
public class BreakExample {
public static void main(String[] args) {
int i = 0;
System.out.println("使用 break 跳出 while 循环:");
while (i < 10) {
System.out.println("i 的当前值是: " + i);
// 当 i 等于 5 时,跳出循环
if (i == 5) {
System.out.println("i 等于 5,循环将被终止。");
break; // 立即跳出 while 循环
}
i++;
}
System.out.println("循环已结束,i 的最终值是: " + i);
}
}
输出结果:
使用 break 跳出 while 循环:
i 的当前值是: 0
i 的当前值是: 1
i 的当前值是: 2
i 的当前值是: 3
i 的当前值是: 4
i 的当前值是: 5
i 等于 5,循环将被终止。
循环已结束,i 的最终值是: 5
使用 return 语句
return 语句会立即结束当前方法的执行,并将控制权返回给调用该方法的代码,如果一个 return 语句位于循环内部,它会直接跳出整个循环,并且跳出包含该循环的方法。
适用场景:
当你不仅想跳出循环,还想结束整个方法的执行时,在一个搜索方法中,当找到目标后,就可以直接 return 结束方法。

代码示例:
public class ReturnExample {
public static void main(String[] args) {
findNumber();
}
public static void findNumber() {
int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int target = 7;
int index = 0;
System.out.println("在数组中查找数字 " + target + "...");
while (index < numbers.length) {
System.out.println("正在检查索引 " + index + " 处的值: " + numbers[index]);
if (numbers[index] == target) {
System.out.println("找到目标数字 " + target + " 在索引 " + index + " 处。");
return; // 找到后,直接结束 findNumber 方法的执行,while 循环自然也就退出了
}
index++;
}
System.out.println("在数组中未找到目标数字 " + target + "。");
}
}
输出结果:
在数组中查找数字 7...
正在检查索引 0 处的值: 1
正在检查索引 1 处的值: 2
正在检查索引 2 处的值: 3
正在检查索引 3 处的值: 4
正在检查索引 4 处的值: 5
正在检查索引 5 处的值: 6
正在检查索引 6 处的值: 7
找到目标数字 7 在索引 6 处。
可以看到,return 执行后,findNumber 方法结束,最后一行 "在数组中未找到..." 的代码没有被执行。
修改循环条件(使循环自然结束)
这是最基础的方法,你可以在循环体内通过修改循环的终止条件,使得在下一次循环条件判断时,条件为 false,从而让循环自然地结束。
适用场景:
当你希望在循环内部根据某个状态的变化来决定是否继续下一次循环时,虽然不如 break 直接,但在某些特定逻辑下很有用。
代码示例:
public class ConditionExample {
public static void main(String[] args) {
int i = 0;
boolean shouldStop = false;
while (i < 10 && !shouldStop) { // 循环条件包含 shouldStop 标志
System.out.println("i 的当前值是: " + i);
if (i == 5) {
System.out.println("i 等于 5,设置停止标志。");
shouldStop = true; // 修改条件,导致下一次循环判断时 !shouldStop 为 false
}
i++;
}
System.out.println("循环已结束,i 的最终值是: " + i);
}
}
输出结果:
i 的当前值是: 0
i 的当前值是: 1
i 的当前值是: 2
i 的当前值是: 3
i 的当前值是: 4
i 的当前值是: 5
i 等于 5,设置停止标志。
循环已结束,i 的最终值是: 6
注意,这里 i 的最终值是 6,因为 break 是立即终止,而修改条件是完成本次循环后,在下一次判断时才退出。
使用 continue 语句(跳过本次循环)
虽然 continue 不是“跳出”整个循环,但它是一个非常重要的循环控制语句,经常被提及。continue 会立即终止当前这一次的循环,然后跳转到循环的条件判断部分,决定是否开始下一次循环。
适用场景:
当你想在满足某个条件时,跳过循环体内剩余的代码,直接进入下一次循环迭代。
代码示例:
public class ContinueExample {
public static void main(String[] args) {
int i = 0;
System.out.println("使用 continue 跳过本次循环:");
while (i < 10) {
i++; // 先增加 i
if (i == 5) {
System.out.println("i 等于 5,跳过本次循环的剩余部分。");
continue; // 跳过下面的打印语句,直接进行下一次 while (i < 10) 的判断
}
System.out.println("i 的当前值是: " + i);
}
}
}
输出结果:
使用 continue 跳过本次循环:
i 的当前值是: 1
i 的当前值是: 2
i 的当前值是: 3
i 的当前值是: 4
i 等于 5,跳过本次循环的剩余部分。
i 的当前值是: 6
i 的当前值是: 7
i 的当前值是: 8
i 的当前值是: 9
i 的当前值是: 10
注意,i=5 的打印语句被跳过了。
总结与对比
| 方法 | 作用 | 跳出范围 | 适用场景 |
|---|---|---|---|
break |
立即终止并退出当前循环 | 仅跳出 while 循环 |
当条件满足时,需要完全停止循环,执行循环后的代码。 |
return |
立即终止并退出当前方法 | 跳出 while 循环及所在方法 |
当找到结果或发生错误时,不仅想停止循环,还想结束整个方法。 |
| 修改条件 | 使循环在下一次判断时自然结束 | 跳出 while 循环 |
循环的继续依赖于某个内部状态的变化。 |
continue |
跳过本次循环的剩余部分,进入下一次 | 不跳出循环,只是跳过迭代 | 当需要跳过某些特定情况下的处理,但继续循环时。 |
核心建议:
- 如果只是想终止循环,继续执行循环之后的代码,请使用
break。 - 如果想终止循环并结束整个方法,请使用
return。 - 如果想跳过当前迭代,请使用
continue。
在大多数情况下,break 是跳出 while 循环最直接和常用的选择。
