• break&&continue


    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后面的代码),进行下一次循环。

    例1:

    #include <stdio.h>
    int main(void)
    {
        int i;
        for (i=0; i<5; i++)
        {
            if (i == 2)
            {
                break;
                printf("没有执行这里!
    ");
            }
            printf("i=%d
    ", i);
        }
        printf("已经跳出循环
    ");
        return 0;
    }

    编译执行:

    kevin@kevin-virtual-machine:~/Documents/Test/C/break_continue$ ./break 
    i=0 i=1 已经跳出循环

    因为break语句直接结束了本层的循环, 直接执行循环后边的语句。

    例2:

    #include <stdio.h>
    int main(void)
    {
        int i;
        for (i=0; i<5; i++)
        {
            if (i == 2)
            {
                continue;
                printf("没有执行这里!
    ");
            }
            printf("i=%d
    ", i);
        }
        printf("循环结束!
    ");
        return 0;
    }

    编译执行:

    kevin@kevin-virtual-machine:~/Documents/Test/C/break_continue$ ./continue
    i=0
    i=1
    i=3
    i=4
    循环结束!

    continue 只是结束了当前一次循环,之后继续了下一次循环。

    例3:

    #include <stdio.h>
    int main(void)
    {
        int a, b;
        for (a=0; a<5; a++)
        {
            for (b=0; b<5; b++)
            {
                if(b == 2)
                {
                    break;
                    printf("没有执行这里!
    ");
                }
                printf("b=%d
    ", b);
            }
            printf("a=%d
    ", a);
        }
        printf("循环结束!
    ");
        return 0;
    }

    编译输出:

    kevin@kevin-virtual-machine:~/Documents/Test/C/break_continue$ ./break2
    b=0
    b=1
    a=0
    b=0
    b=1
    a=1
    b=0
    b=1
    a=2
    b=0
    b=1
    a=3
    b=0
    b=1
    a=4
    循环结束!

    例3是一个两层for循环,break语句只会跳出最近的一层循环,第二层for循环继续执行

    例4:

    #include <stdio.h>
    int main(void)
    {
        int i;
        for (i=0; i<2; i++)
        {
            int j = 5;
            switch(j)
            {
                case 4:
                    printf("你好 %d !!!
    ", 4);
                    break;
                case 5:
                    printf("你好 %d !!!
    ", 5);
                    break;
                case 6:
                    printf("你好 %d !!!
    ", 6);
                    break;
            }
            printf("Hello World!
    ");
        }
        printf("结束循环!
    ");
    }

    编译输出:

    kevin@kevin-virtual-machine:~/Documents/Test/C/break_continue$ ./switch_break
    你好 5 !!!
    Hello World!
    你好 5 !!!
    Hello World!
    结束循环!

    例4中break的作用只会跳出 switch() 语句块,执行swith语句块后面的程序printf("Hello World! ");而不是跳出循环。

    例5:

    #include <stdio.h>
    int main(void)
    {
        int i;
        for (i=0; i<2; i++)
        {
            int j = 5;
            switch(j)
            {
                case 4:
                    printf("你好 %d !!!
    ", 4);
                    continue;
                case 5:
                    printf("你好 %d !!!
    ", 5);
                    continue;
                case 6:
                    printf("你好 %d !!!
    ", 6);
                    continue;
            }
            printf("Hello World!
    ");
        }
        printf("结束循环!
    ");
    }

    编译输出:

    kevin@kevin-virtual-machine:~/Documents/Test/C/break_continue$ ./switch_continue 
    你好 5 !!! 你好 5 !!! 结束循环!

    例5中循环内部的switch语句中的continue是直接结束本次循环,switch语句块后面的printf("Hello World! ");将不会被执行。

  • 相关阅读:
    【0711作业】使用封装实现企鹅
    【0711作业】模拟选民投票
    【0709作业】判断三个数是否能组成三角形以及组成的三角形类型
    【0709作业】简易的购房商贷月供计算器
    【0708】(OOP)用户密码管理
    数据库基础
    转行小白成长路-java篇
    转行小白成长路-java篇
    转行小白成长路-java篇
    转行小白成长路-java篇
  • 原文地址:https://www.cnblogs.com/debruyne/p/9486213.html
Copyright © 2020-2023  润新知