Appearance
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 = 9break 和 continue 的区别
| 特性 | break | continue |
|---|---|---|
| 作用 | 终止整个循环 | 跳过当前迭代,开始下一次迭代 |
| 适用场景 | 需要提前结束整个循环 | 需要跳过当前迭代中的某些代码 |
| 执行效果 | 循环完全结束 | 循环继续执行下一次迭代 |
示例: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 关键字,可以使循环逻辑更加清晰,提高程序的效率。但过度使用这些关键字可能会降低代码的可读性,因此应该谨慎使用。
