break&&continue

Posted debruyne

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
}

编译执行:

[email protected]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;
}

编译执行:

[email protected]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;
}

编译输出:

[email protected]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("结束循环!
");
}

编译输出:

[email protected]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("结束循环!
");
}

编译输出:

[email protected]virtual-machine:~/Documents/Test/C/break_continue$ ./switch_continue 
你好 5 !!! 你好 5 !!! 结束循环!

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

 






以上是关于break&&continue的主要内容,如果未能解决你的问题,请参考以下文章

4_while循环结构和break&continue

break&continue

break & continue

FTP:break&continue connect&accept

python2.7入门---break语句&continue语句&pass空语句

对比Java学Kotlin在 foreach 中使用 break&continue