5. 语句嵌套

在 C 语言中所有的 迭代语句选择语句 本身也是语句,它可以放入到其它的 迭代语句选择语句 中形成一种嵌套结构。用这种嵌套的结构可以实现复杂的功能。

一、for 语句中嵌套 if 语句可以这样写:

#include <stdio.h>

int main(int argc, char *argv[]) {
    for (int i = 1; i <= 20; i++) {
        printf("%2d ", i);
        if (i % 5 == 0)
            printf("\n");
    }
    return 0;
}

二、if 语句中嵌套 for 语句可以这样写:

#include <stdio.h>

int main(int argc, char *argv[]) {
    int x;
    printf("please input a number:");
    scanf("%d", &x);
    if (x > 20)
        for (int i = 1; i <= x; i++) {
            printf("%2d ", i);
            if (i % 5 == 0)
                printf("\n");
        }
    return 0;
}

三、for 语句中嵌套 for 语句可以这样写:

#include <stdio.h>

int main(int argc, char *argv[]) {
    for (int y = 0; y < 4; y++) {
        for (int x = 1; x <= 5; x++) {
            printf("%2d ", y * 5 + x);
        }
        printf("\n");
    }
    return 0;
}

同理,while 语句、do-while 语句、for 语句都可以任意嵌套,但嵌套一定要符合业务逻辑,不要为了嵌套而嵌套,不要玩语法糖。

编写高质量程序的原则是越简单越好。有时候编写复杂的程序是为了逻辑更清晰或执行效率高。而不是为了炫技。

练习:

编写一个程序,打印小学我们学过的 9 行 9 列的九九乘法表。打印结果如下:

1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
...
1x9=9 2x9=18 3x9=27 ... 9x9=81