C++循环嵌套
一、内循环、外循环
循环体里还有循环语句,构成了循环嵌套。一个循环内包含另外一个或者多个循环,处于外层的循环称为外循环,处于内层的循环称为内循环。两层嵌套的循环为二重循环,三层嵌套的循环称为三重循环,嵌套两层以上的称为多重循环。
二、常见格式
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;
}
}
}
更多推荐


所有评论(0)