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