在C语言中,break
和continue
是两个用于控制循环流程的关键字,它们各自有特定的作用和应用场景。
break 语句
作用:
break
语句用于立即退出它所在的循环(for
、while
、do-while
)或switch
语句。- 当执行到
break
语句时,程序会跳过当前循环体中break
语句之后的所有语句,并继续执行循环之后的代码。 - 如果
break
语句位于嵌套循环中,它将只退出包含它的最内层循环。
适用场景:
- 当你想要在满足某个条件时立即退出循环时,可以使用
break
。 - 在
switch
语句中,break
用于防止代码自动执行到下一个case
语句(如果不加break
,则会发生这种情况,称为case穿透)。
示例:
#include <stdio.h>
int main()
{
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 当i等于5时,退出循环
}
printf("%d ", i);
}
// 输出:0 1 2 3 4
return 0;
}
continue 语句
作用:
continue
语句用于跳过当前循环的剩余部分,并立即开始下一次循环的迭代(如果有的话)。- 当执行到
continue
语句时,程序会跳过当前循环体中continue
语句之后的所有语句,并回到循环的顶部开始下一次迭代(前提是有更多的迭代)。 - 如果
continue
语句位于嵌套循环中,它将只影响包含它的最内层循环。
适用场景:
- 当你想要在满足某个条件时跳过当前循环的剩余部分,但不完全退出循环时,可以使用
continue
。
示例:
#include <stdio.h>
int main()
{
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 当i是偶数时,跳过当前循环的剩余部分
}
printf("%d ", i);
}
// 输出:1 3 5 7 9
return 0;
}
break 和 continue 的区别
- 作用不同:
break
用于完全退出循环,而continue
用于跳过当前循环的剩余部分,继续下一次循环迭代。 - 适用场景不同:
break
通常用于在满足某个条件时立即停止整个循环;continue
则用于在满足某个条件时跳过当前循环的剩余部分,但不退出循环。 - 影响范围:两者都仅影响包含它们的最近一层的循环结构。如果它们位于嵌套循环中,则只影响最内层的那个循环。