C

C 知识量:16 - 74 - 317

6.5 循环辅助><

continue语句- 6.5.1 -

通常,程序进入循环体后,在下一次循环测试前会执行完循环体中的所有语句。而在C语言中存在一种语句,可以根据循环体中的测试结果来忽略一部分循环内容,甚至结束循环。这种语句分别是continue语句和break语句。

while循环、for循环和do while循环都可以使用continue语句。当执行continue语句时,会跳过本次迭代的剩余部分,并开始下一轮迭代。如果continue语句在嵌套循环的内层循环中,则只会影响包含该语句的内层循环。以下是一个示例:

#include <stdio.h>

int main(void) {
    int x, y;
    for (x = 1; x <= 9; x++) {
        for (y = 1; y <= x; y++) {
            if (y == 1)continue;
            printf("%d*%d=%-2d ", y, x, x * y);
        }
        printf("\n");
    }
    system("pause");
    return 0;
}

运行结果为:

2*2=4
2*3=6  3*3=9
2*4=8  3*4=12 4*4=16
2*5=10 3*5=15 4*5=20 5*5=25
2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81

以上是一个乘法口诀打印程序,但是通过continue语句,排除了乘数是1的情况。

break语句- 6.5.2 -

程序执行到循环中的break语句时,会终止包含它的循环,并继续执行下一阶段。嵌套循环内层的break只会让程序跳出包含它的当前循环,要跳出外层循环还需要一个break。以下还是一个乘法口诀打印程序,但只打印第1个乘数小于5的部分。

#include <stdio.h>

int main(void) {
    int x, y;
    for (x = 1; x <= 9; x++) {
        for (y = 1; y <= x; y++) {
            if (y == 5)break;
            printf("%d*%d=%-2d ", y, x, x * y);
        }
        printf("\n");
    }
    system("pause");
    return 0;
}

运行结果为:

1*1=1
1*2=2  2*2=4
1*3=3  2*3=6  3*3=9
1*4=4  2*4=8  3*4=12 4*4=16
1*5=5  2*5=10 3*5=15 4*5=20
1*6=6  2*6=12 3*6=18 4*6=24
1*7=7  2*7=14 3*7=21 4*7=28
1*8=8  2*8=16 3*8=24 4*8=32
1*9=9  2*9=18 3*9=27 4*9=36