打印
[技术问答]

c语言中break和continue的用法和区别

[复制链接]
880|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vivilyly|  楼主 | 2025-5-27 16:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
break与continue的的用法以及区别
1.当它们用在循环语句的循环体时,break用于立即退出本层循环,而continue仅仅结束本次循环(本次循环体内不执continue语句后的其它语句,但下一次循环还会继续执行。
2. 如果有多层循环时,break只会跳出本层循环,不会跳出其他层的循环.
3. break可用于switch语句,表示跳出整个switch语句块,而continue则不能单独的用于switch语句。但是continue可以用于循环内部的switch语句。
4. break和continue语句在循环内的switch语句中使用时,是有区别的。在这种情况下的break是指跳出switch语句块(switch语句块的代码仍然执行)。而这种情况下的continue是指结束本次循环(不在执行switch后面的代码),进行下一次循环。
//break 代码实例
#include <stdio.h>

int main()
{
    int i = 1;
    while(i<=10)
    {
        if(i==5)
            break;
        printf("%d ",i);
        i = i + 1;
    }
    return 0;
}

此处,代码的输出结果是什么?
正确输出为:1 2 3 4
原因分析:当程序运行到if(i==5) 程序就直接终止,直接 退出当前循环。
总结:在循环中只要遇到break,就停止后期所有的循环,直接终止循环。
测试2:

void test2()
{
int i = 0;
for (i = 0; i < 5; i++)
{
if (i == 2)
{
continue;
printf("我没有被打印出来!\n");
}
printf("i = %d\n", i);
}

test2()的打印结果是 i = 0 i = 1  i = 3  i = 4 i = 2没有被打印,是因为continue 结束了那一次循环,继续了下一次循环
void test3()
{
int i = 0;
int j = 0;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
if (j == 2)
{
break;
}
printf("Hello: %d\n", j);

}
test3()是一个两层for循环,break语句只会跳出最近的一层循环, 第二层for循环继续执行在test4()中,break的作用只会跳出 switch()语句块,执行swith语句块后面的程序printf(“Hello World!\n”); 而不是跳出循环。与test5()进行对比,continue是结束本次循环,进行下一次循环, switch()语句块后边的内容不会被打印
*/
void test4()
{

int i = 0;
for (i = 0; i < 2; i++)
{

int j = 5;
switch (j)
{

case 4:
printf(“你好 %d !!!\n”, 4);
break;
case 5:
printf(“你好 %d !!!\n”, 5);
break;
case 6:
printf(“你好 %d!!!\n”, 6);
break;
}
printf(“Hello World!\n”);
}
}

/*
test5()中循环内部的switch语句中的continue是直接结束本次循环,
switch语句块后面的printf(“Hello World!\n”);将不会被执行。
*/
void test5()
{

int i = 0;
for (i = 0; i < 2; i++)
{

int j = 5;
switch (j)
{

case 4:
printf(“你好 %d !!!\n”, 4);
continue;
case 5:
printf(“你好 %d !!!\n”, 5);
continue;
case 6:
printf(“你好 %d!!!\n”, 6);
continue;
}

printf(“Hello World!\n”);
}
}

int main()
{


test1();
printf(“———————————————————“);
test2();
printf(“———————————————————“);

test3();
printf(“———————————————————“);

test4();
test5();
printf(“———————————————————“);

system(“pause”);
return 0;
}





使用特权

评论回复
沙发
作业粉碎机| | 2025-5-28 12:31 | 只看该作者
break和continue在控制循环流程中扮演着重要的角色。通过提供的代码示例,我们可以清楚地看到它们在不同场景下的具体应用。

使用特权

评论回复
板凳
alxd| | 2025-6-7 11:58 | 只看该作者
break 的用法作用:立即终止当前循环(for、while、do-while)或switch语句,并跳出执行循环后的代码。

使用特权

评论回复
地板
Betty1299| | 2025-6-7 13:06 | 只看该作者
提前退出循环(如满足某个条件时)。退出多层嵌套循环(需配合标签使用)

使用特权

评论回复
5
Charlotte夏| | 2025-6-7 14:17 | 只看该作者
continue 的用法作用:跳过当前循环的剩余部分,直接进入下一次循环迭代(不终止循环)。

使用特权

评论回复
6
limerenceforu| | 2025-6-7 15:18 | 只看该作者
使用continue的话,可以忽略某些特定条件下的处理(如过滤无效数据)

使用特权

评论回复
7
Espoironenext| | 2025-6-7 16:29 | 只看该作者
break 退出外层循环(C99+):使用标签指定要退出的循环层级

使用特权

评论回复
8
Ustinian| | 2025-6-7 18:04 | 只看该作者
避免滥用,过度使用break或continue可能降低代码可读性。

使用特权

评论回复
9
StarrismNE| | 2025-6-7 19:24 | 只看该作者
替代方案,某些场景可用条件语句(如if-else)重构,使逻辑更清晰。

使用特权

评论回复
10
Augenstern星星| | 2025-6-8 09:13 | 只看该作者
switch中的break,在switch中,break用于退出当前case,而非循环。

使用特权

评论回复
11
HeimdallHoney| | 2025-6-8 10:27 | 只看该作者
break:用于完全终止循环或switch。continue:仅跳过当前循环迭代。

使用特权

评论回复
12
Whosheart| | 2025-6-8 12:39 | 只看该作者
根据是否需要完全退出循环或仅跳过部分逻辑决定使用哪个关键字。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

1903

帖子

1

粉丝