Skip to content

7.4 break 和 continue 关键字

break 和 continue 关键字的概念

break 和 continue 是 Java 中用于控制循环流程的关键字。它们可以改变循环的执行流程,使循环提前结束或跳过当前迭代。

break 关键字

break 关键字的作用

break 关键字用于终止当前循环的执行,跳出循环体。它可以用于 for、while 和 do…while 循环中。

break 关键字的使用

在 for 循环中使用 break

java
public class BreakInForExample {
    public static void main(String[] args) {
        // 打印 1 到 10,当遇到 5 时停止
        for (int i = 1; i <= 10; i++) {
            if (i == 5) {
                break; // 终止循环
            }
            System.out.println("i = " + i);
        }
        System.out.println("Loop ended");
    }
}

输出结果:

i = 1
i = 2
i = 3
i = 4
Loop ended

在 while 循环中使用 break

java
public class BreakInWhileExample {
    public static void main(String[] args) {
        int i = 1;
        while (i <= 10) {
            if (i == 5) {
                break; // 终止循环
            }
            System.out.println("i = " + i);
            i++;
        }
        System.out.println("Loop ended");
    }
}

输出结果:

i = 1
i = 2
i = 3
i = 4
Loop ended

在 do…while 循环中使用 break

java
public class BreakInDoWhileExample {
    public static void main(String[] args) {
        int i = 1;
        do {
            if (i == 5) {
                break; // 终止循环
            }
            System.out.println("i = " + i);
            i++;
        } while (i <= 10);
        System.out.println("Loop ended");
    }
}

输出结果:

i = 1
i = 2
i = 3
i = 4
Loop ended

在 switch 语句中使用 break

break 关键字也可以用于 switch 语句中,用于终止 switch 语句的执行。

java
public class BreakInSwitchExample {
    public static void main(String[] args) {
        int day = 3;
        switch (day) {
            case 1:
                System.out.println("Monday");
                break;
            case 2:
                System.out.println("Tuesday");
                break;
            case 3:
                System.out.println("Wednesday");
                break; // 终止 switch 语句
            default:
                System.out.println("Other day");
                break;
        }
    }
}

continue 关键字

continue 关键字的作用

continue 关键字用于跳过当前循环的剩余部分,直接开始下一次迭代。它可以用于 for、while 和 do…while 循环中。

continue 关键字的使用

在 for 循环中使用 continue

java
public class ContinueInForExample {
    public static void main(String[] args) {
        // 打印 1 到 10 中的奇数
        for (int i = 1; i <= 10; i++) {
            if (i % 2 == 0) {
                continue; // 跳过当前迭代,开始下一次迭代
            }
            System.out.println("i = " + i);
        }
    }
}

输出结果:

i = 1
i = 3
i = 5
i = 7
i = 9

在 while 循环中使用 continue

java
public class ContinueInWhileExample {
    public static void main(String[] args) {
        int i = 0;
        while (i < 10) {
            i++;
            if (i % 2 == 0) {
                continue; // 跳过当前迭代,开始下一次迭代
            }
            System.out.println("i = " + i);
        }
    }
}

输出结果:

i = 1
i = 3
i = 5
i = 7
i = 9

在 do…while 循环中使用 continue

java
public class ContinueInDoWhileExample {
    public static void main(String[] args) {
        int i = 0;
        do {
            i++;
            if (i % 2 == 0) {
                continue; // 跳过当前迭代,开始下一次迭代
            }
            System.out.println("i = " + i);
        } while (i < 10);
    }
}

输出结果:

i = 1
i = 3
i = 5
i = 7
i = 9

break 和 continue 的区别

特性breakcontinue
作用终止整个循环跳过当前迭代,开始下一次迭代
适用场景需要提前结束整个循环需要跳过当前迭代中的某些代码
执行效果循环完全结束循环继续执行下一次迭代

示例:break 和 continue 的使用

示例 1:查找第一个大于 50 的数

java
public class FindNumberExample {
    public static void main(String[] args) {
        int[] numbers = {10, 25, 30, 45, 55, 60, 75};
        for (int number : numbers) {
            if (number > 50) {
                System.out.println("First number greater than 50: " + number);
                break; // 找到后立即停止
            }
        }
    }
}

输出结果:

First number greater than 50: 55

示例 2:计算 1 到 100 中所有奇数的和

java
public class SumOddExample {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                continue; // 跳过偶数
            }
            sum += i;
        }
        System.out.println("Sum of odd numbers from 1 to 100: " + sum);
    }
}

输出结果:

Sum of odd numbers from 1 to 100: 2500

示例 3:密码验证

java
import java.util.Scanner;

public class PasswordValidationExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String correctPassword = "123456";
        int attempts = 0;
        final int MAX_ATTEMPTS = 3;
        
        while (attempts < MAX_ATTEMPTS) {
            System.out.print("Enter password: ");
            String password = scanner.nextLine();
            attempts++;
            
            if (!password.equals(correctPassword)) {
                System.out.println("Incorrect password. Attempts left: " + (MAX_ATTEMPTS - attempts));
                continue; // 密码错误,继续下一次尝试
            }
            
            System.out.println("Login successful!");
            break; // 密码正确,结束循环
        }
        
        if (attempts == MAX_ATTEMPTS) {
            System.out.println("Maximum attempts reached. Account locked.");
        }
        
        scanner.close();
    }
}

常见问题

1. break 用于错误的循环

症状:break 语句终止了错误的循环

解决方案:确保 break 语句位于正确的循环体内

2. continue 导致无限循环

症状:continue 语句跳过了循环变量的更新,导致无限循环

解决方案:确保在 continue 语句之前更新循环变量

3. 过度使用 break 和 continue

症状:代码可读性差,逻辑复杂

解决方案:尽量减少 break 和 continue 的使用,通过调整循环条件来控制循环流程

总结

break 和 continue 是 Java 中用于控制循环流程的关键字:

  • break:终止当前循环的执行,跳出循环体
  • continue:跳过当前循环的剩余部分,直接开始下一次迭代

合理使用 break 和 continue 关键字,可以使循环逻辑更加清晰,提高程序的效率。但过度使用这些关键字可能会降低代码的可读性,因此应该谨慎使用。

© 2026 编程马·菜鸟教程 版权所有