Java循环控制语句 #
一、循环控制概述 #
Java提供了三种循环控制语句:
- break:跳出循环
- continue:跳过本次循环
- return:返回方法
二、break语句 #
2.1 基本用法 #
break用于完全跳出循环,不再执行后续循环。
java
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break; // 当i=5时跳出循环
}
System.out.println("i = " + i);
}
// 输出:
// i = 1
// i = 2
// i = 3
// i = 4
2.2 在while中使用 #
java
int i = 0;
while (true) {
System.out.println("i = " + i);
i++;
if (i >= 5) {
break; // 跳出无限循环
}
}
2.3 查找元素 #
java
int[] arr = {10, 20, 30, 40, 50};
int target = 30;
int index = -1;
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
index = i;
break; // 找到后立即退出
}
}
System.out.println("索引: " + index); // 2
2.4 带标签的break #
用于跳出多层循环:
java
outer: // 标签
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
if (i == 1 && j == 1) {
break outer; // 跳出外层循环
}
System.out.println("(" + i + ", " + j + ")");
}
}
// 输出:
// (0, 0)
// (0, 1)
// (0, 2)
// (1, 0)
2.5 在switch中使用 #
java
int day = 2;
switch (day) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break; // 跳出switch
default:
System.out.println("其他");
}
三、continue语句 #
3.1 基本用法 #
continue用于跳过本次循环,继续下一次循环。
java
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // 跳过i=3
}
System.out.println("i = " + i);
}
// 输出:
// i = 1
// i = 2
// i = 4
// i = 5
3.2 在while中使用 #
java
int i = 0;
while (i < 5) {
i++;
if (i == 3) {
continue; // 跳过i=3
}
System.out.println("i = " + i);
}
// 输出:
// i = 1
// i = 2
// i = 4
// i = 5
3.3 过滤数据 #
java
int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
// 打印偶数
for (int num : arr) {
if (num % 2 != 0) {
continue; // 跳过奇数
}
System.out.println(num);
}
// 输出:2, 4, 6, 8, 10
3.4 带标签的continue #
java
outer:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (i == j) {
continue outer; // 跳到外层循环的下一次迭代
}
System.out.println("(" + i + ", " + j + ")");
}
}
// 输出:
// (2, 1)
// (3, 1)
// (3, 2)
四、return语句 #
4.1 基本用法 #
return用于从方法中返回,终止方法执行。
java
public static int findIndex(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
return i; // 找到后返回索引
}
}
return -1; // 未找到返回-1
}
4.2 在循环中使用 #
java
public static boolean contains(int[] arr, int target) {
for (int num : arr) {
if (num == target) {
return true; // 找到后立即返回
}
}
return false;
}
4.3 void方法中的return #
java
public static void printPositive(int[] arr) {
for (int num : arr) {
if (num <= 0) {
continue; // 跳过非正数
}
System.out.println(num);
}
// return; // 可省略
}
public static void process(String input) {
if (input == null) {
return; // 早返回
}
System.out.println("处理: " + input);
}
五、对比总结 #
| 语句 | 作用 | 影响范围 |
|---|---|---|
| break | 跳出循环/switch | 当前循环或switch |
| continue | 跳过本次迭代 | 当前循环的本次迭代 |
| return | 返回方法 | 整个方法 |
六、使用场景 #
6.1 break使用场景 #
java
// 找到第一个满足条件的元素
public static int findFirst(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
return i;
}
}
return -1;
}
// 限制循环次数
int count = 0;
for (String item : items) {
if (count++ >= 10) {
break; // 最多处理10个
}
process(item);
}
6.2 continue使用场景 #
java
// 过滤无效数据
for (String line : lines) {
if (line == null || line.isEmpty()) {
continue;
}
process(line);
}
// 跳过特定条件
for (int i = 0; i < 100; i++) {
if (i % 10 == 0) {
continue; // 跳过10的倍数
}
System.out.println(i);
}
6.3 return使用场景 #
java
// 早返回模式
public String process(String input) {
if (input == null) {
return "输入为空";
}
if (input.isEmpty()) {
return "输入为空字符串";
}
return "处理结果: " + input;
}
// 查找并返回
public User findUser(List<User> users, String name) {
for (User user : users) {
if (user.getName().equals(name)) {
return user;
}
}
return null;
}
七、常见模式 #
7.1 查找模式 #
java
// 查找第一个匹配项
public static Integer findFirstMatch(List<Integer> list, Predicate<Integer> condition) {
for (Integer item : list) {
if (condition.test(item)) {
return item; // 找到后立即返回
}
}
return null; // 未找到
}
7.2 验证模式 #
java
// 验证所有元素
public static boolean allPositive(int[] arr) {
for (int num : arr) {
if (num <= 0) {
return false; // 发现非正数立即返回
}
}
return true;
}
// 验证是否存在
public static boolean hasNegative(int[] arr) {
for (int num : arr) {
if (num < 0) {
return true; // 发现负数立即返回
}
}
return false;
}
7.3 处理模式 #
java
// 跳过无效数据
public static void processValid(List<String> data) {
for (String item : data) {
if (item == null || item.trim().isEmpty()) {
continue;
}
// 处理有效数据
System.out.println("处理: " + item);
}
}
八、注意事项 #
8.1 不要过度使用 #
java
// 不推荐:过多的break和continue
for (int i = 0; i < n; i++) {
if (condition1) continue;
if (condition2) continue;
if (condition3) break;
// ...
}
// 推荐:使用条件表达式
for (int i = 0; i < n && !condition3; i++) {
if (!condition1 && !condition2) {
// ...
}
}
8.2 标签命名 #
java
// 推荐:有意义的标签名
search:
for (Item item : items) {
for (Detail detail : item.getDetails()) {
if (detail.matches(target)) {
break search;
}
}
}
// 不推荐:无意义的标签名
label1:
for (int i = 0; i < 10; i++) {
break label1;
}
8.3 循环中的return #
java
// 注意:return会终止整个方法
public void process() {
for (int i = 0; i < 10; i++) {
if (i == 5) {
return; // 整个方法结束
}
}
System.out.println("这行不会执行");
}
九、总结 #
| 语句 | 用途 | 使用建议 |
|---|---|---|
| break | 跳出循环 | 找到目标、限制次数 |
| continue | 跳过本次 | 过滤数据、跳过特定条件 |
| return | 返回方法 | 早返回、查找返回 |
循环控制要点:
- break完全跳出循环
- continue跳过本次迭代
- return终止整个方法
- 带标签可跳出多层循环
- 避免过度使用,保持代码清晰
最后更新:2026-03-26