📜  C中break和Continue语句之间的区别(1)

📅  最后修改于: 2023-12-03 15:00:11.334000             🧑  作者: Mango

C中break和Continue语句之间的区别

在C语言中,break和continue是两条常用的控制语句,它们可以用于控制循环或者switch语句的执行流程。虽然它们的作用类似,但是它们之间还是存在一些区别的。

break语句

break语句用于中断循环或者switch语句的执行。当break语句被执行时,程序会跳出当前的循环或者switch语句,继续执行紧随其后的语句。

下面是一个使用break语句的示例代码:

#include <stdio.h>

int main()
{
    int i;
    for(i = 0; i < 10; i++)
    {
        if(i == 5)
        {
            break; // 中断循环
        }
        printf("%d ", i);
    }
    printf("\n");
    return 0;
}

在上面的代码中,for循环中当i等于5时,break语句被执行,循环被中断,程序执行结果为:0 1 2 3 4。

continue语句

continue语句用于跳过当前循环中余下的语句,在执行下一次循环之前会先测试循环条件,如果条件为真,则继续执行循环,否则跳出循环。

下面是一个使用continue语句的示例代码:

#include <stdio.h>

int main()
{
    int i;
    for(i = 0; i < 10; i++)
    {
        if(i % 2 == 0)
        {
            continue; // 跳过偶数
        }
        printf("%d ", i);
    }
    printf("\n");
    return 0;
}

在上面的代码中,当i为偶数时,continue语句被执行,跳过余下的语句,程序执行结果为:1 3 5 7 9。

区别

break语句和continue语句虽然都可以控制循环的执行流程,但是它们的作用不同。break语句用于中断循环或者switch语句的执行,而continue语句则用于跳过当前循环中余下的语句。

此外,在嵌套循环中,break语句只能跳出内层循环,而不能跳出外层循环;而continue语句则只能跳过当前的内层循环,而不能跳过外层循环。

#include <stdio.h>

int main()
{
    int i, j;
    for(i = 0; i < 10; i++)
    {
        for(j = 0; j < 10; j++)
        {
            if(j == 5)
            {
                break; // 中断内层循环
            }
            printf("%d:%d ", i, j);
        }
        printf("\n");
    }
    return 0;
}

在上面的代码中,当j等于5时,break语句被执行,中断内层循环,程序执行结果为:0:0 0:1 0:2 0:3 0:4 1:0 1:1 1:2 1:3 1:4 …… 9:0 9:1 9:2 9:3 9:4。

#include <stdio.h>

int main()
{
    int i, j;
    for(i = 0; i < 10; i++)
    {
        for(j = 0; j < 10; j++)
        {
            if(j % 2 == 0)
            {
                continue; // 跳过内层循环中的偶数
            }
            printf("%d:%d ", i, j);
        }
        printf("\n");
    }
    return 0;
}

在上面的代码中,当j为偶数时,continue语句被执行,跳过余下的语句,程序执行结果为:0:1 0:3 0:5 0:7 0:9 1:1 1:3 1:5 1:7 1:9 …… 9:1 9:3 9:5 9:7 9:9。

总结

break语句用于中断循环或者switch语句的执行,其作用是跳出当前的循环或者switch语句,继续执行后面的语句。continue语句用于跳过当前循环中余下的语句,在执行下一次循环之前会先测试循环条件,如果条件为真,则继续执行循环,否则跳出循环。在嵌套循环中,break语句只能跳出内层循环,而不能跳出外层循环;而continue语句则只能跳过当前的内层循环,而不能跳过外层循环。