C语言break和continue的用法和区别

break 语句很重要,用得非常多,初学者一定要掌握。continue 语句虽然没有 break 语句用得多,但也经常用到,而且不可或缺,需要用到 continue 的时候其他语句是无法替代的。

前面已经介绍过 break 语句,它不仅可以跳出“循环体”,还可以跳出 switch。但事实上,break 也只能用于这两种情况。break 语句不能用于循环语句和 switch 语句之外的任何其他语句中。

不管是 for 循环,还是 while 循环,或者是 do…while 循环,都可以用 break 跳出来,但是 break 只能跳出一层循环。当有多层循环嵌套的时候,break只能跳出“包裹”它的最里面的那一层循环,无法一次跳出所有循环。

同样,在多层 switch 嵌套的程序中,break 也只能跳出其所在的距离它最近的 switch。但多层 switch 嵌套实在是少见。

continue 的用法十分简单,其作用为结束本次循环,即跳过循环体中下面尚未执行的语句,然后进行下一次是否执行循环的判定。
continue和break的区别
continue 语句和 break 语句的区别是,continue 语句只结束本次循环,而不是终止整个循环。break 语句则是结束整个循环过程,不再判断执行循环的条件是否成立。而且,continue 只能在循环语句中使用,即只能在 for、while 和 do…while 中使用,除此之外 continue 不能在任何语句中使用。

所以,再次强调:continue 不能在 switch 中使用,除非 switch 在循环体中。此时 continue 表示的也是结束循环体的本次循环,跟 switch 也没有关系。

continue ,终止本次循环,执行下一轮的条件判断,它只局限于continue语句所在的循环语句,即第二个for语句中。
事实上,continue语句的执行,和循环是不是嵌套没有任何关系。

例如,下面为使用switch模拟电梯运行的代码:

    # include <stdio.h>
    int main(void)
    {
        int val;  //variable的缩写, “变量”的意思
        printf("请输入您想去的楼层:");
        while (1)
        {
            scanf("%d", &val);
            switch (val)
            {
            case 1:
                printf("1层开!\n");
                break;  //跳出switch
            case 2:
                printf("2层开!\n");
                break;  //跳出switch
            case 3:
                printf("3层开!\n");
                break;  //跳出switch
            default:
                printf("该层不存在, 请重新输入:");
                continue;  //结束本次while循环
            }
            break;  //跳出while
        }
        return 0;
    }

输出结果是:
请输入您想去的楼层:4
该层不存在, 请重新输入:3
3层开!

此时在 default 中如果不使用 continue 的话,那么最后的“该层不存在,请重新输入:”仍然不起作用。它虽然能输出,但输出之后直接就执行后面的 break 了,用户仍然没有重新输入的机会。而加 continue 之后就会结束本次 while 循环,即后面的 break 语句本次就不会执行,而是直接进入 while 循环,这样用户就有“重新输入”的机会了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值