
八、多重循环与循环的嵌套
- 分类:
- 3D设计-CodeBlocks
- 2019-07-05
- 1405
微课详情
所谓嵌套就是一层套一层,就好像套娃或者洋葱一样,一层一层的套在一起。而我们的程序设计也可以采用这样的方法来进行,只是每层循环我们给循环变量的变化数值范围可能不同,其循环变量的意义也不同,通常在外面的循环我们称为外循环,内部的循环称为内循环。 下面让我们来学习一个案例来加深理解吧。所谓嵌套就是一层套一层,就好像套娃或者洋葱一样,一层一层的套在一起。
而我们的程序设计也可以采用这样的方法来进行,只是每层循环我们给循环变量的变化数值范围可能不同,其循环变量的意义也不同,通常在外面的循环我们称为外循环,内部的循环称为内循环。
下面让我们来学习一个案例来加深理解吧。
【启动器案例分析】
我们在创建程序时,输入https://www.tinkercad.com/codeblocks?,在启动器里面有个一非常好的程序循环的案例——Tea Light Holder,让我们来分析一下官网提供的程序吧。
程序运行结果如右图所示,我们可以看到程序使用了两个循环来创建镂空的雕花效果,是一个典型的在程序中使用多个循环的案例,那么我们能不能将该程序结构修改成多重循环或循环嵌套的结构以便达到精简程序的结构呢?
让我们试试看吧。下面是笔者修改后的程序。
经过了上面的程序结构改造,我们看到了编程思路的多样性。下面让我们尝试制作一个该案例的变种模型。
案例1:设计一座八边形的塔楼。要有楼顶面和顶层的女儿墙,墙面上每层有4扇窗户。
设计思路:
我们根据自己印象里的塔楼样式,设计出一个基本的外观,我们选用圆柱形的外观,并在每层楼面上开四扇窗户,一共4层。
女儿墙为顶层上的类似长城的墙面特色,一共8个“缺口”,最后在楼层的顶层见面楼面。
【说明】下面采用数学中常用的符号表示循环的起始和终值,并注意包含该终值与否。
操作步骤:
1、设置循环变量i、j和k。其中,i的取值范围[0,4) ,j的取值范围[-2,2),其目的是为了产生四次循环,每次循环得到4个空心的窗户的效果。
2、循环变量j控制窗户的层数。
3、循环变量i控制窗户的位置。
4、循环变量k控制女儿墙挖去的空心矩形的位置。K的取值范围[0,8)。
5、空心的立方体和实体模型最后组合得到需要的塔楼外观。
6、建设楼顶层面使模型看起来更加真实。
点击工具栏上的播放按钮,仔细查看程序运行时的效果。对比启动器的案例,我们都做了哪些改进。
【拓展练习】
问题:
如果我们要改善窗户的外观,比如弧线形的窗户上边缘,我们该如何处理?
如果我们还要增加一扇门,我们该如何处理呢?
如果我们要在楼顶上增加避雷针或者天线,我们又该如何处理?
如果我们都按照上面的拓展练习完成了程序设计,那么我们可以得到如下链接的效果。
塔楼模型参考链接:https://www.tinkercad.com/things/9xKnlmtauDd
总结:
本节内容复习了循环结构,在同一个模型里面使用了3个循环变量。注意循环变量的意义。
复习了循环变量i、j和k在循环过程中的应用,在调试的过程中需要有耐心,并留意不同的调试参数给模型带来的不同效果。
程序中的多个循环通常是一个程序中一个循环执行完成接着执行其他的程序结构或者执行另一个循环的结构;
循环的嵌套通常就是多重循环,一个循环体内部还有另外的循环,尤其要注意的就是这类循环结构退出的条件。
注:完成全部内容时长约50分钟。
说明:此学习资料中的积木中文翻译源自于TINKERCAD,可能将来发生变动,以TINKERCAD最新版翻译为准。