一、内循环、外循环

循环体里还有循环语句,构成了循环嵌套。一个循环内包含另外一个或者多个循环,处于外层的循环称为外循环,处于内层的循环称为内循环。两层嵌套的循环为二重循环,三层嵌套的循环称为三重循环,嵌套两层以上的称为多重循环。

二、常见格式

for循环、whilei循环和do-while循环这三种循环可以相互嵌套。

1、for循环里面再有一个for循环,最为常见。

2、for循环里有while循环。

3、for循环里有do-while循环。

4、while循环里有for循环。

5、while循环里有while循环。

6、while循环里有do-while循环。

7、do-while循环里有for循环。

8、do-while循环里有while循环。

9、do-while循环里有do-while循环。

三、使用说明

1、多层循环时,满足外层循环后依次执行内层循环,直到内层循环结束,内层循环终止条件要写对。

2、内层循环需在内层结束,不能出现内外交叉。

3、多层循环时要考虑减少循环次数,例如减少枚举范围和减少层数(优化)。

4、中断循环或跳过循环,使用break和continue语句。

5、内外层不能使用相同的循环变量。

6、为了方便理解,可以把外层当做控制循环行数(控制整体),内层当做控制循环列数(控制局部)。

四、break和continue

1、break终止当前循环,执行循环后的代码。如果是多层循环,跳出当前所在的循环,外层循环依旧继续。

2、continue跳过当前循环的剩余部分,并没终止整改循环,而是进入下一次循环。如果是多层循环,并没有跳出当前循环,只是执行下一次循环。

3、continue只能用在循环中,出现在其他位置会出错。

五、几种常见循环结构问题

1、死循环问题,循环条件一直为真,应确保循环条件最终变为假。

2、循环次数错误,循环条件设置不当。

3、嵌套循环内外层混乱,内外侧变量混用,应使用不同的变量。

4、输出格式混乱,如需要换行或是加入空格隔开。

六、九九乘法表循环部分

for (int i = 1; i <= 9; i++) { // 外层控制行(被乘数)

    for (int j = 1; j <= i; j++) { // 内层控制列(乘数),注意 j<=i

        cout << j << "x" << i << "=" << i * j << "\t";

    }

    cout << endl;

}

七、百钱买百鸡

鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

循环部分:

for (int cock = 0; cock <= 20; cock++) { // 公鸡最多20只

    for (int hen = 0; hen <= 33; hen++) { // 母鸡最多33只

        int chick = 100 - cock - hen; // 小鸡数量

        if (chick % 3 == 0 && (5 * cock + 3 * hen + chick / 3) == 100) {

            cout << "公鸡:" << cock << ",母鸡:" << hen << ",小鸡:" << chick << endl;

        }

    }

}

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐