在循环执行的过程中,有时需要在特定条件下提前终止或跳过当前循环,这是编程中常见的需求。C语言提供了break
和continue
两个关键字来满足这些需求。
目录
一、while循环中的break和continue
1、break语句
break****语句用于立即终止当前所在的循环结构,无论循环条件是否仍然满足。执行break
后,程序会继续执行循环之后的代码。
示例代码:
cpp
#include <stdio.h>
int main()
{
int i = 1;
while(i <= 10)
{
if(i == 5)
break; // 当i等于5时,执行break终止循环
printf("%d ", i);
i = i + 1;
}
return 0;
}
执行结果:

分析:
-
程序打印1、2、3、4后,当i等于5时,执行
break
语句 -
循环立即终止,不再执行后续的循环体
-
break
会永久终止当前所在的循环结构
2、continue语句
continue
语句用于跳过当前循环的剩余部分,直接进入下一次循环的条件判断。
示例代码:
cpp
#include <stdio.h>
int main()
{
int i = 1;
while(i <= 10)
{
if(i == 5)
continue; // 当i等于5时,跳过本次循环剩余部分
printf("%d ", i);
i = i + 1;
}
return 0;
}
潜在问题:
-
当i等于5时,执行
continue
跳过了i = i + 1
语句 -
导致i始终为5,程序陷入无限循环
-
这是因为在while循环中,循环变量的更新位于
continue
之后
结论:
-
continue
会跳过当前循环中剩余的代码 -
在while循环中使用
continue
时,要特别注意循环变量的更新位置,避免死循环
二、for循环中的break和continue
1、break语句
for
循环中的break
与while
循环中的行为一致,都是立即终止循环。
示例代码:
cpp
#include <stdio.h>
int main()
{
int i = 1;
for(i = 1; i <= 10; i++)
{
if(i == 5)
break; // 当i等于5时终止循环
printf("%d ", i);
}
return 0;
}
执行结果:

2、continue语句
for
循环中的continue
行为与while
循环略有不同,它会跳过循环体剩余部分,但仍会执行循环变量的更新。
示例代码:
cpp
#include <stdio.h>
int main()
{
int i = 1;
for(i = 1; i <= 10; i++)
{
if(i == 5)
continue; // 跳过本次循环剩余部分
printf("%d ", i);
}
return 0;
}
执行结果:

分析:

-
当i等于5时,
continue
跳过了printf
语句 -
但仍执行了
i++
,所以不会造成死循环 -
这是
for
循环与while
循环中continue
的重要区别
三、do-while循环中的break和continue
do-while
循环中break
和continue
的行为与while
循环基本一致。
break示例:
cpp
#include <stdio.h>
int main()
{
int i = 1;
do
{
if(i == 5)
break;
printf("%d ", i);
i = i + 1;
} while(i <= 10);
return 0;
}
continue示例:
cpp
#include <stdio.h>
int main()
{
int i = 1;
do
{
if(i == 5)
continue;
printf("%d ", i);
i = i + 1;
} while(i <= 10);
return 0;
}
注意:
-
do-while
循环中的continue
同样可能导致死循环,如果循环变量的更新位于continue
之后 -
使用时需要特别注意循环变量的更新位置
四、总结对比
语句 | while循环 | for循环 |
---|---|---|
break | 立即终止循环 | 立即终止循环 |
continue | 跳过剩余代码,直接判断循环条件 可能导致死循环 | 跳过剩余代码,但仍执行循环变量更新 不会导致死循环 |
在实际编程中,应根据具体需求选择合适的循环结构和控制语句,并注意它们的行为差异,特别是可能导致的死循环问题。