Logo

郎哥编程

第29讲:for嵌套循环

2026-03-10 24

for循环也可以嵌套,它可以和for循环结构,也可以和while循环结构混合嵌套。

嵌套循环时,必须将被嵌套的循环语句完整地包含在外层循环的循环体内,下面给出嵌套循环的示例。

例【1】for循环嵌套练习

编程要求:用“*”输出一个菱形图案,图案如下:

程序清单 sample.c

#include <stdio.h>
void main()
{
        int i, j, k;
        // 先打印上边的四行
        for (i = 1; i <= 4; i++) {
            // 控制要打印的空格数
            for (j = 1; j <= 4 - i; j++)
                printf(" ");
            // 控制要打印的星号数
            for (k = 1; k <= 2 * i - 1; k++)
                printf("*");
                printf("\n");
        }
        // 打印下边的三行
        for (i = 1; i <= 3; i++) {
            // 控制要打印的空格数
            for (j = 1; j <= i; j++)
                printf(" ");
            // 控制要打印的星号数
            for (k = 1; k <= 7 - 2 * i; k++)
                printf("*");
            printf("\n");
        }
}

程序分为两部分循环,第一部分循环输出菱形图案的上边四行,最外层循环控制输出的行数,内层嵌套了两个for循环,第一个嵌套循环输出打印的空格数,第二个嵌套循环输出打印的星号数;第二部分循环输出菱形图案的下边三行,原理和第一部分循环相同。

例【2】for循环嵌套练习

编程要求:打印输出100至200之间的全部素数。

提示:素数是指能被1和它本身整除的数。算法比较简单,先将这个数被2除,如果能整除,且该数又不等于2,则该数不是素数。如果该数不能被2整除,再看是否能被3整除,并且该数不等于3,则该数不是素数,否则再判断是否能被4整除,依次类推,该数只要是能被小于其本身的某个数整除时,就不是素数。

程序清单 sample.c

#include <stdio.h>
void main()
{
	int i, j, n;
    n = 0;
    for (i = 100; i <= 200; i++) {
        j = 2;
        // 从2到i之间寻找第一个能被整除的数
        while (i % j != 0)
            j++;
            // 如果第一个能被整除的数等于该数本身,则说明该数为素数
            if (i == j) {
                printf("%4d", i);
                n++;
                // 控制每行输出8个素数
                if (n % 8 == 0)
                    printf("\n");
            }
        }
        printf("\n");
}

程序外层循环控制输出100至200之间的数,内层的while循环用于找寻从2到该数之间第一个能被整除的数,内层循环判断条件为i%j != 0,其中i为当前要判断是否是素数的数,j为从2开始循环递增的数,如果i%j != 0,则说明i不能被j整除,j自增后程序继续执行while循环,如果i%j == 0,则说明i能被j整除,程序跳出while循环,循环后面的if语句判断i与j是否相等,如果相等,则说明i为素数,程序输出i。

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论